我正在使用OAuth (谷歌和微软)连接到我的ASP.NET MVC多租户应用程序。默认情况下,我的用户分配了TenantID。此tenantID存储在索赔中。但是它们可以被分配给多个租户,并且在登录时可以提示它们选择各自的租户。一旦完成,我将在这里替换声明中的tenantid值:
public static ClaimsIdentity SetTenant(int tenantID)
{
var claims = HttpContext.Current.GetOwinContext().Authentication.User.Claims;
var identity = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie);
if (identity.FindFirst("tenantid") != null)
{
identity.RemoveClaim(identity.FindFirst("tenantid"));
}
identity.AddClaim(new Claim("tenantid", tenantID.ToString()));
System.Web.HttpContext.Current.Items["TenantID"] = tenantID;
return identity;
}我得到了这一行的例外情况
var identity =新的DefaultAuthenticationTypes.ApplicationCookie);(claims,ClaimsIdentity) 在建立到Server的连接时发生了与网络相关的或特定于实例的错误.找不到或无法访问服务器。验证实例名是否正确,以及Server是否配置为允许远程连接。(提供程序: SQL网络接口,错误: 26 -指定的服务器/实例定位错误)
不确定为什么要在这里建立SQL连接。
发布于 2015-09-17 03:43:56
这一项似乎正在发挥作用:
var cp = HttpContext.Current.User;
var identity = new ClaimsIdentity(cp.Identity);https://stackoverflow.com/questions/32600702
复制相似问题