当前位置 : 主页 > 网络编程 > ASP >

asp.net – User.Identity.Name是否为空?

来源:互联网 收集:自由互联 发布时间:2021-06-24
我使用visual studio 2015在我的办公室PC上创建了一个简单的web api项目, Windows登录公司Domain(AD).我更改了web.config文件以进行集成身份验证 – system.web authentication mode =“Windows”/. url http://lo
我使用visual studio 2015在我的办公室PC上创建了一个简单的web api项目, Windows登录公司Domain(AD).我更改了web.config文件以进行集成身份验证 – < system.web>< authentication mode =“Windows”/>. url http://localhost:23151/api/Model1从数据库返回有效的xml数据.

我在IIS Express(开发服务器)设置的项目属性中将匿名身份验证更改为已禁用,并将Windows身份验证更改为已启用.

我在公共IQuerybal< Model1>中设置了一个断点. GetModel1()并检查User.Identity.Name的值,它返回null?

更新:
奇怪的是我在另一台PC上创建了一个新项目(仍在Visual Studio 2015中),我可以从属性User.Identity.Name获取我的Windows登录信息.

更新2:
我试图将项目文件复制到新PC,它仍然有同样的问题.所以它应该是项目中的一些设置.很奇怪.

在您的问题中没有太多可以处理的问题,但我最好的猜测是您忽略了授权控制器操作.您需要将[Authorize]属性添加到实际的控制器类(以保护其中的所有操作)或您在此处使用的单个操作.

如果您需要允许匿名访问相同的操作,您还可以添加[AllowAnonymous]属性,但如果您至少没有[授权],则不会填充任何用户信息.

网友评论