C# 如何在MVC3中公开身份验证令牌

C# 如何在MVC3中公开身份验证令牌,c#,asp.net-mvc-3,repository,membership,C#,Asp.net Mvc 3,Repository,Membership,我当前在我的基本控制器中有身份验证令牌。因此,使用会员API,我必须调用控制器中的所有repo。我希望在我的模型中有这些回购协议的风险敞口,但需要此代币 是否有一个地方可以设置此令牌,该令牌将在每次请求时更新,而不会影响所有用户?有没有一种方法可以公开它,使我的视图模型能够在一些基本模型中访问它,并用它调用repos 下面是我在基本控制器中的当前代码: // ///为当前用户提供身份验证凭据。 /// 受保护的IToken AuthenticatedUserToken { 得到 { var u

我当前在我的基本控制器中有身份验证令牌。因此,使用会员API,我必须调用控制器中的所有repo。我希望在我的模型中有这些回购协议的风险敞口,但需要此代币

是否有一个地方可以设置此令牌,该令牌将在每次请求时更新,而不会影响所有用户?有没有一种方法可以公开它,使我的视图模型能够在一些基本模型中访问它,并用它调用repos

下面是我在基本控制器中的当前代码:

//
///为当前用户提供身份验证凭据。
/// 
受保护的IToken AuthenticatedUserToken
{
得到
{
var userCred=(UsersCredential)this.Session[GlobalContext.UserCredentialsSessionKey];
if(userCred!=null)
{
返回userCred.UsersToken;
}
如果(请求已验证)
{
var name=HttpContext.User.Identity.name;
var repository=new UserRepository(GlobalContext.provisiongapiservicebase,
GlobalContext.WebServiceUserAuthenticationToken);
var usersCredential=新usersCredential
{
UsersName=name,
乌斯斯托克=
repository.GetAuthenticationTokenForAuthenticatedUser(名称)
};
会话[GlobalContext.UserCredentialsSessionKey]=usersCredential;
返回usersCredential.UsersToken;
}                
返回null;
}
}
受保护的RepositoryCollection_存储库{get;set;}
受保护的RepositoryCollection存储库
{
得到
{
如果(_==null)
{
_Repositories=新的RepositoryCollection(this.AuthenticatedUserToken);
}
返回存储库;
}
}

将属性的访问级别从受保护更改为公共。受保护的方法和属性仅由类及其祖先可见。

如果我理解您的问题: 最好在操作中更新模型,而不是提供对模型存储库的访问。如果您有一些基本模型,并且希望在几乎每个请求上填充一些属性,并且不希望复制过去的代码,那么可以使用将为您设置此属性的操作筛选器。在这种情况下,您不需要在模型类中包含任何逻辑。 差不多