【问题标题】:Read Post Data submitted to ASP.Net Form读取提交到 ASP.Net 表单的 Post 数据
【发布时间】:2010-10-08 12:51:22
【问题描述】:

我在一个 asp.net 应用程序中有一个有效的登录表单。带有用户名和密码文本框以及处理登录的按钮的标准内容。工作正常。

我有一个新要求,允许用户从一个单独的纯 html 页面输入用户名和密码,该页面不是我的 asp.net 应用程序的一部分。我计划使用标准 html 来实现这一点 - 表单、输入、提交按钮等。表单操作将是我的 asp.net 登录页面的 URL,其方法将是 POST。

我想在 asp.net 登录表单的 C# 代码隐藏页面中做的事情,大概是在 Page_Load 事件中,是检查对页面的请求是否包含传入的用户名和密码值。如果是然后我需要读取这些值并处理登录,就好像有人单击了 asp.net 页面上的登录按钮一样。如果没有,那么我将照常显示登录表单。

如何检查我的页面请求中是否存在并读取用户名和密码值。

【问题讨论】:

    标签: c# asp.net post


    【解决方案1】:
    if (!string.IsNullOrEmpty(Request.Form["username"])) { ... }
    

    username 是提交页面上输入的名称。密码可以通过同样的方式获得。如果它不为 null 或为空,则它存在,然后登录用户(我不记得 ASP.NET Membership 的确切步骤,假设你正在使用它)。

    【讨论】:

      【解决方案2】:

      阅读 Request.Form NameValueCollection 并相应地处理您的逻辑:

      NameValueCollection nvc = Request.Form;
      string userName, password;
      if (!string.IsNullOrEmpty(nvc["txtUserName"]))
      {
        userName = nvc["txtUserName"];
      }
      
      if (!string.IsNullOrEmpty(nvc["txtPassword"]))
      {
        password = nvc["txtPassword"];
      }
      
      //Process login
      CheckLogin(userName, password);
      

      ... 其中“txtUserName”和“txtPassword”是发布页面上控件的名称

      【讨论】:

      • 字节数组呢?你会有这样的字符串,然后将其转换为字节数组,还是什么?我正在将文件上传到serve.r
      • 很好奇为什么要遍历 namevaluecollection 而不是直接检查每个控件名称的请求?
      • @Howiecamp 有没有找到这个问题的答案?我也很感兴趣。
      • 这个!我调试了整整 5 个小时,试图弄清楚为什么我不能从这个表单中获取数据。
      • 确保您的表单控件已设置runat=server 属性,否则它们不会作为请求的一部分发送
      【解决方案3】:
      NameValueCollection nvclc = Request.Form;
      string   uName= nvclc ["txtUserName"];
      string   pswod= nvclc ["txtPassword"];
      //try login
      CheckLogin(uName, pswod);
      

      【讨论】:

      • 给你一个正确的参考答案,这样更可行。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      • 2015-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多