加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 09:12:40 所属栏目:asp.Net 来源:网络整理
导读:我使用visual studio 2015在我的办公室PC上创建了一个简单的web api项目,Windows登录公司Domain(AD).我更改了web.config文件以进行集成身份验证 – system.web authentication mode =“Windows”/. url http://localhost:23151/api/Model1从数据库返回有效的
我使用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]属性,但如果您至少没有[授权],则不会填充任何用户信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读