- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个小型 ASP.NET 3.5 应用程序,允许用户自行更新选定的帐户属性。
当我使用基本身份验证时一切正常,但由于显示的对话框不太理想,我想使用表单例份验证为用户提供更多有关如何登录的说明。
我的问题是,为了让用户更新他们的帐户信息,我必须让应用程序模拟他们进行更新操作。
我在互联网上搜索过,试图找到解决我的问题的方法,但没有一个适合或有效。我已尝试设置 web.config:
<identity impersonate="true">
但这似乎行不通。我也有使用 WindowsImpersonationContext 类的 C# 代码,但还是不行。
protected void titleTextBox_TextChanged(object sender, EventArgs e)
{
TextBox tb = (TextBox)sender;
string fieldTitle = "job title";
string fieldName = "title";
if (userDirectoryEntry == null)
CaptureUserIdentity();
try
{
WindowsImpersonationContext impersonationContext = userWindowsIdentity.Impersonate();
if (String.IsNullOrEmpty(tb.Text))
userDirectoryEntry.Properties[fieldName].Clear();
else
userDirectoryEntry.InvokeSet(fieldName, tb.Text);
userDirectoryEntry.CommitChanges();
impersonationContext.Undo();
PostBackMessages.Add(fieldTitle, "");
}
catch (Exception E)
{
PostBackMessages.Add(fieldTitle, E.Message);
}
}
我还尝试使用 LogonUser 方法创建用户 token 并以这种方式后端验证,但它也不起作用。
IntPtr token = IntPtr.Zero;
bool result = LogonUser(userName, domainName, passwordTB.Text, LogonSessionType.Network, LogonProvider.Default, out token);
if (result)
{
WindowsPrincipal wp = new WindowsPrincipal(new WindowsIdentity(token));
System.Threading.Thread.CurrentPrincipal = wp;
HttpContext.Current.User = wp;
if (Request.QueryString["ReturnUrl"] != null)
{
FormsAuthentication.RedirectFromLoginPage(usernameTB.Text, false);
}
else
{
FormsAuthentication.SetAuthCookie(usernameTB.Text, false);
}
}
我只是忍不住想我错过了一些非常简单的东西......
最佳答案
有没有enabled Windows Authentication并在 IIS 中禁用匿名身份验证?
如果在 ASP.NET 应用程序中启用模拟,则:
• 如果在 IIS 中启用了匿名访问,则使用 IUSR_machinename 帐户发出请求。
• 如果在 IIS 中禁用了匿名访问,则使用经过身份验证的用户的帐户发出请求。
关于c# - 使用 asp.net 表单例份验证的用户模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3619160/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!