asp.net mvc widows验证的程序的cs.html 中有@user可以读取用户名等信息
这是在管道模型的AuthenticationModule中做了准备的。
这个module有如下代码:
public void Init(HttpApplication app)
{
if (!FormsAuthenticationModule._fAuthChecked)
{
FormsAuthenticationModule._fAuthRequired = (AuthenticationConfig.Mode == AuthenticationMode.Forms);
FormsAuthenticationModule._fAuthChecked = true;
}
if (FormsAuthenticationModule._fAuthRequired)
{
FormsAuthentication.Initialize();
app.AuthenticateRequest += this.OnEnter;
app.EndRequest += this.OnLeave;
}
}
private void OnAuthenticate(FormsAuthenticationEventArgs e)
{
HttpCookie httpCookie = null;
if (this._eventHandler != null)
{
this._eventHandler(this, e);
}
if (e.Context.User == null)
{
if (e.User != null)
{
e.Context.SetPrincipalNoDemand(e.User);
}
最后一句,是读取配置。
哪里去判断系统设置的是windows 验证呢?
FormsAuthenticationModule._fAuthRequired = (AuthenticationConfig.Mode == AuthenticationMode.Forms);
这句话AuthenticationConfig.Mode追踪下去。会看到
internal AuthenticationSection Authentication
{
get
{
return (AuthenticationSection)this.GetSection("system.web/authentication", typeof(AuthenticationSection), ResultsIndex.Authentication);
}
}
原来这里读取了配置文件呢!