asp.net mvc 中的原理上下文 return 空值
Principle context return null value in asp.net mvc
我正在尝试使用主要上下文连接活动目录。我试过下面的代码。
using (var context = new PrincipalContext(ContextType.Domain,
ConfigurationManager.AppSettings["DomainName"].ToString()))
{
try
{
writeLog("Before:" + isCheckUserName);
writeLog("Context name:" + context.Name);
var user = UserPrincipal.FindByIdentity(context, GetCurrentWindowsLogin());
writeLog("GetCurrent:" + GetCurrentWindowsLogin());
writeLog("After:" + user.EmployeeId);
if (user != null) {
StaffName = user.DisplayName;
StaffID = user.EmployeeId;
}
}
catch (Exception ex)
{
writeLog($"Second try: Error - {ex.Message} Inner Exception: {ex.InnerException.Message}");
}
}
这段代码在客户端的本地机器上运行良好,但在上传到客户端的服务器后,它会抛出空引用异常。
任何想法。
谢谢。
这些都是我自己解决的。
我在下面的 PrincipleContext 构造函数中添加了两个参数。即 Active Directory 域用户名和密码。
using (var context = new PrincipalContext(ContextType.Domain,
ConfigurationManager.AppSettings["DomainName"].ToString(),
ConfigurationManager.AppSettings["ADUserName"].ToString(),
ConfigurationManager.AppSettings["ADPassword"].ToString()))
{
try
{
writeLog("Before:" + isCheckUserName);
writeLog("Context name:" + context.Name);
var user = UserPrincipal.FindByIdentity(context, GetCurrentWindowsLogin());
writeLog("GetCurrent:" + GetCurrentWindowsLogin());
writeLog("After:" + user.EmployeeId);
if (user != null)
{
StaffName = user.DisplayName;
StaffID = user.EmployeeId;
}
}
catch (Exception ex)
{
writeLog($"Second try: Error - {ex.Message} Inner Exception: {ex.InnerException.Message}");
}
}
并更改 IIS 授权。
将匿名身份验证设置为 "Disable",并将 ASP.NET 模拟设置为 "Enable"。
我正在尝试使用主要上下文连接活动目录。我试过下面的代码。
using (var context = new PrincipalContext(ContextType.Domain,
ConfigurationManager.AppSettings["DomainName"].ToString()))
{
try
{
writeLog("Before:" + isCheckUserName);
writeLog("Context name:" + context.Name);
var user = UserPrincipal.FindByIdentity(context, GetCurrentWindowsLogin());
writeLog("GetCurrent:" + GetCurrentWindowsLogin());
writeLog("After:" + user.EmployeeId);
if (user != null) {
StaffName = user.DisplayName;
StaffID = user.EmployeeId;
}
}
catch (Exception ex)
{
writeLog($"Second try: Error - {ex.Message} Inner Exception: {ex.InnerException.Message}");
}
}
这段代码在客户端的本地机器上运行良好,但在上传到客户端的服务器后,它会抛出空引用异常。
任何想法。 谢谢。
这些都是我自己解决的。 我在下面的 PrincipleContext 构造函数中添加了两个参数。即 Active Directory 域用户名和密码。
using (var context = new PrincipalContext(ContextType.Domain,
ConfigurationManager.AppSettings["DomainName"].ToString(),
ConfigurationManager.AppSettings["ADUserName"].ToString(),
ConfigurationManager.AppSettings["ADPassword"].ToString()))
{
try
{
writeLog("Before:" + isCheckUserName);
writeLog("Context name:" + context.Name);
var user = UserPrincipal.FindByIdentity(context, GetCurrentWindowsLogin());
writeLog("GetCurrent:" + GetCurrentWindowsLogin());
writeLog("After:" + user.EmployeeId);
if (user != null)
{
StaffName = user.DisplayName;
StaffID = user.EmployeeId;
}
}
catch (Exception ex)
{
writeLog($"Second try: Error - {ex.Message} Inner Exception: {ex.InnerException.Message}");
}
}
并更改 IIS 授权。 将匿名身份验证设置为 "Disable",并将 ASP.NET 模拟设置为 "Enable"。