/ / CSS-Rendering-Problem nach dem Abmelden - asp.net, html, css, Visual-Studio

CSS-Rendering-Problem nach dem Abmelden - asp.net, html, css, Visual-Studio

Ich habe eine Hauptseite und drei, die erbendavon; Meine Site ändert Masterseiten basierend auf dem Status des Benutzers (ausgeloggt, ohne Administratorrechte angemeldet, mit Administratorrechten angemeldet), um das Seitenmenü entsprechend zu ändern.

Wenn ich eingeloggt bin, funktionieren die Masterseiten normaluser.master und admin.master einwandfrei.

Wenn ich abgemeldet bin, kann ich mit "abmelden.master" kein css vom Stylesheet rendern, indem ich mein hübsches Seitenmenü in eine Liste von unterstrichenen blauen Links verwandle und alle Headerstile entferne.

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>

normalbenutzer.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>

logout.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>

Mit oder ohne "runat = server", die Stylesheet-Verknüpfung in Abmelden tut nichts; Hinzufügen, das war eine Möglichkeit, die ich versuchte, es zu lösen. Alle Masterseiten und das Stylesheet befinden sich im selben Ordner.

Antworten:

3 für die Antwort № 1

In Anbetracht Ihrer Beschreibungen, sieht wie Ihr ausCSS befindet sich in einem Verzeichnis, das unter Authentifizierung gesichert ist. Damit das CSS und die Skripts auf der Anmeldeseite und anderen nicht authentifizierten Seiten verfügbar sind, müssen Sie sie über die Authentifizierung hinaus verfügbar machen.

Um dies zu tun, können Sie diese CSS und Skripte hinzufügenusw., in ein Verzeichnis (z. B. Öffentlicher Ordner auf root) und verwenden Sie das Element location in web.config, um allen Benutzern Zugriff auf diese Verzeichnisse zu gewähren. Dies hat keine Kompromisse in Bezug auf Ihre Sicherheit als solche.

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