在ASP.NET
中开发了一个Web应用程序,并部署在Azure Websites
上。使用ADFS身份验证提供SSO登录。登录用户名需要存储在数据库表的一个审计列中
首先我尝试下面的代码:
using System.Security.Claims;
ClaimsPrincipal cp = ClaimsPrincipal.Current;
string fullname = cp.FindFirst(ClaimTypes.Name).Value;
在On-Premise IIS上部署时可以正常工作,但在Azure网站上部署时会抛出null异常。
我也尝试过:
WindowsIdentity.GetCurrent().Name;
它也适用于内部部署,但在Azure网站上部署时显示"IIS APPPOOL\<AppName>"
。