我是网络技术的新手,我的经验纯粹是C#。 我从网页设计师那里得到了一个HTML设计,我正在构建它并随时学习。
我有一些网页用于授权访问,其他网页用于匿名用户
另外,我了解到拒绝匿名用户访问是通过使用webconfig中的以下更改添加授权标记来完成的
<system.web>
<authentication mode="Forms">
<forms loginUrl="logon.aspx" name=".ASPXFORMSAUTH">
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
然而,除登录页面之外还有其他页面需要允许所有用户访问,例如注册页面
所以我从msdn那里了解到我需要添加一个位置标记来指示这些页面的文件夹 我创建了一个名为“Auth”的文件夹并添加了这些页面 所以我的web.confile看起来像
<location path="Auth">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<system.web>
<authentication mode="Forms">
<forms loginUrl="logon.aspx" name=".ASPXFORMSAUTH">
</forms>
</authentication>
</system.web>
最后,问题是登录后和调试期间,授权访问页面只显示为纯文本而没有任何格式化!谁能说出为什么会这样?
答案 0 :(得分:1)
我用“纯文本”假设你的意思是你可以查看HTML确定,但它没有根据设计师(或你的)CSS文件设置样式。
如果您必须将页面移动到Auth文件夹中,这可能会破坏该页面引用的CSS文件的链接。
使用以下示例结构
\ - 应用的根源
\ Auth - 包含无法访问的页面
\样式 - 包含你的css文件(和图像?)
\ Styles \ FileName.css - 你所有漂亮魔法的css文件
\ Logon.aspx - 包含您的登录表单
\ Default.aspx - 包含每个人都可以访问的默认页面
如果不在Auth文件夹中的页面显示正常,我的猜测是你的css文件会像这样链接:
<link rel="Stylesheet" type="text/css" href="Styles/FileName.css">
但是现在您已经移动了页面,该引用不会指向同一个文件。将其更改为绝对路径,或者在您的情况下,您可以使用asp.net应用程序根路径....所以这(对于所有页面):
<link rel="Stylesheet" type="text/css" href="~/Styles/FileName.css">
或者
<link rel="Stylesheet" type="text/css" href="/Styles/FileName.css">
或者,如果这些都不起作用,对于您的auth文件夹里面页面,只需使用向上一级语法
<link rel="Stylesheet" type="text/css" href="../Styles/FileName.css">