/ Проблема візуалізації CSS після виходу - asp.net, html, css, visual-studio

Проблема рендеринга CSS після виходу - asp.net, html, css, візуальна студія

У мене є одна основна головна сторінка і три, які успадковуютьсяз цього; мій сайт змінює основні сторінки відповідно до стану користувача (вийшов із системи, увійшов без привілеїв адміністратора, увійшов із правами адміністратора), щоб змінити бічне меню відповідно.

Коли я ввійшов у систему, головні сторінки normaluser.master та admin.master працюють добре.

Коли я вийшов із системи, loggedout.master не вдається вивести жодний CSS із таблиці стилів, перетворивши моє гарне бічне меню у список підкреслених синіх посилань та видаливши всі стилі заголовків.

MasterPage.master:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
<link href="StyleSheet.css" rel="stylesheet" type="text/css" />
</head>
<body style="background-color: rgb(231, 231, 255);height:100%;margin:0px;padding:0px">
<form id="form1" runat="server">
<div style="background-color:rgb(74, 60, 140);color: rgb(247, 247, 247);height:20%">
<div style="width:7%;display:inline-block;border:none;padding:0px;padding-left:2px">
<img src="/images/Images/globe2.png" style="height:100px;vertical-align:middle"/>
</div>
<div style="display:inline-block;vertical-align:middle;">
<span style="font-size:36pt;padding-left:10px;font-family:Century,inherit"> Welcome To MeetSmart: </span><span style="font-size:16pt;font-style:italic"> Your smarter meeting solution</span>
</div>
</div>
<div style="height:80%">
<div style="width:15%;height:100%;display:inline-block;text-align:center;margin-top:10px;padding:0px;">
<asp:ContentPlaceHolder id="Menu" runat="server">

</asp:ContentPlaceHolder>

</div>
<div style="display:inline-block;margin:0px;padding-left:10px;padding-top:20px;border:2px solid purple;width:75%;height:100%;vertical-align:top">
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">

</asp:ContentPlaceHolder>
</div>
</div>
</form>
</body>
</html>

normaluser.master:

<%@ Master Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="normaluser.master.cs" Inherits="normaluser" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<link href="StyleSheet.css" rel="stylesheet" type="text/css" />
<title>
<asp:ContentPlaceHolder id="title" runat="server">
</asp:ContentPlaceHolder>
</title>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Menu" Runat="Server">
<div class="menuItem"> <a href="Schedule.aspx" class="menuItem">My Schedule </a></div>
<div class="menuItem"> <a href="MyProfile.aspx" class="menuItem">My Profile </a></div>
<div class="menuItem"> <a href="DocManagerUser.aspx" class="menuItem">Document Center </a></div>
<div class="menuItem"> <a href="Directory.aspx" class="menuItem">Directory</a></div>
<div class="menuItem"> <a href="Logout.aspx" class="menuItem">Log out </a></div>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:ContentPlaceHolder id="mainContent" runat="server">

</asp:ContentPlaceHolder>
</asp:Content>

loggedout.master:

<%@ Master Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="LoggedOut.master.cs" Inherits="LoggedOut" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<link runat="server" href="StyleSheet.css" rel="stylesheet" type="text/css" />
<title>

<asp:ContentPlaceHolder id="title" runat="server">
</asp:ContentPlaceHolder>
</title>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Menu" Runat="Server">
<div class="menuItem"><a href="Login.aspx" class="menuItem">Log In </a><br /></div>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:ContentPlaceHolder id="mainContent" runat="server">
</asp:ContentPlaceHolder>
</asp:Content>

З або без "runat = сервер", посилання таблиці стилів у реєстрації не робить нічого; додавши, що це був один із способів, який я намагався вирішити. Всі головні сторінки та таблиця стилів знаходяться в одній папці.

Відповіді:

3 для відповіді № 1

З огляду на ваші описи, виглядає як вашCSS знаходиться в каталозі, який захищений під час автентифікації. Для того, щоб CSS та скрипти були доступними на сторінках Логін та інших неавторизованих сторінках, вам потрібно зробити їх доступними поза аутентифікацією.

Для цього ви можете додати ці CSS та скриптитощо, до каталогу (скажімо, загальнодоступна папка в кореневому режимі) і використовуйте елемент розташування в web.config, щоб забезпечити доступ усім до цих дирекцій. Це не впливає на вашу безпеку як таку.

<configuration>
<location path="Public">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
</configuration>