我有一个ASP.NET 2.0网络应用程序。如果我在我的开发机器上运行在调试模式下,proprerty User.Identity.Name不是空的,它会返回我的名字“MyDomain”。如果我将同一应用程序部署到带有apache和Mono运行时的Linux服务器中,则User.Identity.Name为空。
我哪里错了?
编辑:我不知道认证的类型。我使用web.config 'as‘而不修改任何东西,我也尝试过:<authentication mode="Windows"/>
发布于 2011-11-30 15:24:12
Mono只支持“无”和“窗体”身份验证模式。" forms“是ASP.NET窗体使用的身份验证。“无”意味着不需要认证。不支持的选项是"Windows“和"Passport”。
发布于 2011-11-30 15:10:01
您正在匿名连接到您的应用程序。
假设您使用的是表单身份验证:
如果您查看配置文件的system.web部分,应该有如下所示的部分:
<system.web>
<authorization>
<deny users="?"/>
<!-- deny anonymous -->
<allow users="*"/>
<!-- allow all authenticated -->
</authorization>
</system.web>如果您确保存在deny users="?"设置,Asp.Net将强制用户在允许访问页面之前进行身份验证。这将确保设置了User.Identity.Name属性。
https://stackoverflow.com/questions/8328046
复制相似问题