我在使用MVC HttpContext.User.Identity时遇到了一点麻烦我收到了system.security.principal.windowsIdentity并且它给了我Windows用户的名字...我不希望这样,我想得到(起初)null User.Identity所以我可以使用FormsAuthentication。如何阻止mvc使用此system.security.principal.windowsIdentity来显示正确的User.Identity?任何帮助将不胜感激
public ActionResult Index()
{
var s = HttpContext.User.Identity.Name; //
return View();
}
答案 0 :(得分:2)
在您的web.config文件的<system.web>
部分中,更改为表单身份验证。
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
答案 1 :(得分:1)
这是因为您启用了Windows身份验证。您可能与您的网络服务器位于同一个域中,因此它会自动验证您的身份。将其关闭或明确说明您的配置中的身份验证。
答案 2 :(得分:0)
检查web.config以确保<authentication mode="Forms" />
如果您没有明确地设置它,那么您可能在第一次创建项目时选择了mvc内部网模板。
更新配置文件后,您还需要创建登录/关闭操作和视图。您可能希望使用Internet模板创建另一个项目并提取身份验证组件。
Intranet模板默认为Windows身份验证,而Internet模板默认为form。