佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 798|回复: 13

为什么login不到的?ASP.net

[复制链接]
发表于 23-3-2006 01:15 PM | 显示全部楼层 |阅读模式

  1. login.aspx

  2. <%@ Page Language="C#" %>
  3. <%@ Import Namespace="System.Data" %>
  4. <%@ Import Namespace="System.Data.Odbc" %>

  5. <html>
  6. <head>
  7. <title>Login</title>
  8. </head>
  9. <script runat="server">
  10. private void btnLogin_Click(Object sender, EventArgs e)
  11. {
  12.         FormsAuthentication.Initialize();

  13.     string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=127.0.0.1;" + "DATABASE=aspnet;" + "UID=root;" + "PASSWORD=chen1983";
  14.         OdbcConnection MyConnection = new OdbcConnection(MyConString);
  15.         OdbcCommand cmd = MyConnection.CreateCommand();
  16.         cmd.CommandText = "SELECT roles FROM users WHERE username=@Username.Text " + "AND password=@Password.Text";
  17.         cmd.Parameters.Add("@username", OdbcType.VarChar, 64).Value = Username.Value;
  18.         cmd.Parameters.Add("@password", OdbcType.VarChar, 128).Value = FormsAuthentication.HashPasswordForStoringInConfigFile(Password.Value, "md5"); // Or "sha1"
  19.         MyConnection.Open();
  20.         OdbcDataReader Reader = cmd.ExecuteReader();
  21.         if (Reader.Read())
  22.         {
  23.          FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
  24.                 1,
  25.                 Username.Value,
  26.                 DateTime.Now,
  27.                 DateTime.Now.AddMinutes(30),
  28.                 true,
  29.                 Reader.GetString(0),
  30.                 FormsAuthentication.FormsCookiePath);

  31.          string hash = FormsAuthentication.Encrypt(ticket);
  32.          HttpCookie cookie = new HttpCookie(
  33.                 FormsAuthentication.FormsCookieName,
  34.                 hash);

  35.          if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;

  36.          Response.Cookies.Add(cookie);

  37.          string returnUrl = Request.QueryString["welcome.aspx"];
  38.          if (returnUrl == null) returnUrl = "/";

  39.          Response.Redirect(returnUrl);
  40.         }
  41.         else
  42.         {
  43.          ErrorLabel.Text = "Username / password incorrect. Please try again.";
  44.          ErrorLabel.Visible = true;
  45.         }

  46.         Reader.Close();
  47.         MyConnection.Close();
  48. }
  49. </script>
  50. <body>
  51. <form runat="server">
  52.         <p>Username: <input id="Username" runat="server" type="text"/><br />
  53.         Password: <input id="Password" runat="server" type="password"/><br/>
  54.         <asp:Button id="btnLogin" runat="server" OnClick="btnLogin_Click" Text="Login"/>
  55.         <asp:Label id="ErrorLabel" runat="Server" ForeColor="Red" Visible="false"/></p>
  56. </form>
  57. </body>
  58. </html>
复制代码


  1. web.config

  2. <configuration>
  3.     <appSettings/>
  4.     <connectionStrings>
  5.         <add name="ConnectionString" connectionString="Dsn=mydata;uid=root;pwd=chen1983"
  6.             providerName="System.Data.Odbc" />
  7.     </connectionStrings>
  8.         <system.web>
  9.         <compilation debug="true"/>
  10.                
  11.                 <authentication mode="Forms">
  12.                         <forms name="MYWEBAPP.ASPXAUTH" loginUrl="login.aspx" protection="All" path="/"/>
  13.                 </authentication>

  14.                 <authorization>
  15.                         <allow users="*"/>
  16.                 </authorization>

  17.                     <globalization requestEncoding="UTF-8" responseEncoding="UTF-8"/>

  18.         </system.web>
  19.         <location path="administrators">
  20.                 <system.web>
  21.                         <authorization>
  22.                                 <!-- Order and case are important below -->
  23.                                 <allow roles="Administrator"/>
  24.                                 <deny users="*"/>
  25.                         </authorization>
  26.                 </system.web>
  27.         </location>
  28.         <location path="users">
  29.                 <system.web>
  30.                         <authorization>
  31.                                 <!-- Order and case are important below -->
  32.                                 <allow roles="User"/>
  33.                                 <deny users="*"/>
  34.                         </authorization>
  35.                 </system.web>
  36.         </location>
  37. </configuration>
复制代码


  1. Global.asax

  2. <%@ Application Codebehind="Global.asax.cs" %>

  3. Global.asax.cs

  4. using System;
  5. using System.Collections;
  6. using System.ComponentModel;
  7. using System.Web;
  8. using System.Web.SessionState;
  9. using System.Security.Principal

  10. namespace WebApplication1
  11. {
  12.         public class Global : System.Web.HttpApplication
  13.         {
  14.         {
  15.         protected void Application_AuthenticateRequest(Object sender,EventArgs e)
  16.         {
  17.         if(HttpContext.Current.User!=null)
  18.         {
  19.         if(HttpContext.Current.User.Identity.IsAuthenticated)
  20.         {
  21.         if(HttpContext.Current.User.Identity is FormsIdentity)
  22.         {
  23.         FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
  24.         FormsAuthenticationTicket ticket = id.Ticket;

  25.         string userData = ticket.UserData;
  26.         string[] roles = userData.Split(',');
  27.         HttpContext.Current.User = new GenericPrincipal(id,roles);
  28.         }
  29.         }
  30.         }
  31.         }
  32.     }
  33. }

复制代码


  1. welcome.aspx

  2. <html>
  3. <head>
  4.   <title>Welcome</title>
  5.   <script runat="server">
  6.   protected void Page_Load(Object sender, EventArgs e)
  7.   {
  8.    if (User.IsInRole("Administrator"))
  9.     AdminLink.Visible = true;
  10.   }
  11.   </script>
  12. </head>
  13. <body>
  14. <form runat=server>
  15.   <h2>Welcome</h2>
  16.   <p>Welcome, anonymous user, to our web site.</p>
  17.   <asp:HyperLink id="AdminLink" runat="server"
  18.    Text="Administrators, click here." NavigateUrl="administrators/"/>
  19. </form>
  20. </body>
  21. </html>
复制代码
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 23-3-2006 01:19 PM | 显示全部楼层
不知道为什么就是login不到。

一直说我的password/username错。
ErrorLabel.Text = "Username / password incorrect. Please try again.";


明明是对的呀。

system是可以跑的。
也没有error。
回复

使用道具 举报

发表于 23-3-2006 05:08 PM | 显示全部楼层
试试看用breakpoint trace回去看哪里出错。。
回复

使用道具 举报

 楼主| 发表于 27-3-2006 09:12 AM | 显示全部楼层
原帖由 红卜卜 于 23-3-2006 05:08 PM 发表
试试看用breakpoint trace回去看哪里出错。。



完全没有error的。
只是不知道为什么login不到??
回复

使用道具 举报

 楼主| 发表于 29-3-2006 01:39 PM | 显示全部楼层
回复

使用道具 举报

发表于 29-3-2006 09:20 PM | 显示全部楼层

回复 #1 红发 的帖子

MySQL 我不熟
但应该不需要放 .Text 在SQL command 吧
@Password.Text

不知道是不是
回复

使用道具 举报

Follow Us
 楼主| 发表于 30-3-2006 01:15 PM | 显示全部楼层
原帖由 milktin 于 29-3-2006 09:20 PM 发表
MySQL 我不熟
但应该不需要放 .Text 在SQL command 吧
@Password.Text

不知道是不是


很高兴看到你的回复。

这个我也不知道。
我是刚开始学的
回复

使用道具 举报

发表于 30-3-2006 05:28 PM | 显示全部楼层
原帖由 红卜卜 于 23-3-2006 17:08 发表
试试看用breakpoint trace回去看哪里出错。。

红卜卜  也是搞网页编程的?。。。。
回复

使用道具 举报


ADVERTISEMENT

发表于 8-4-2006 11:27 AM | 显示全部楼层
is it u use the visual studio and the web matrix to do this??

if can please post out ur error page to let other read and see whether can help u.
回复

使用道具 举报

 楼主| 发表于 8-4-2006 04:08 PM | 显示全部楼层
原帖由 Freedom84 于 8-4-2006 11:27 AM 发表
is it u use the visual studio and the web matrix to do this??

if can please post out ur error page to let other read and see whether can help u.



我是从其他的网页看来的
http://www.codeproject.com/aspnet/formsroleauth.asp
run的时候就是没有error。

我也login不进我的pager。
回复

使用道具 举报

发表于 8-4-2006 06:10 PM | 显示全部楼层
你應該要用 Request 的方法吧
回复

使用道具 举报

发表于 8-4-2006 07:58 PM | 显示全部楼层

回复 #10 红发 的帖子

I read oredi the website u giv...

because u r using the ODBC, so i think is the connection problem...

do u hav register a new ODBC connection with the sql server at ur Data Source??
回复

使用道具 举报

 楼主| 发表于 8-4-2006 10:26 PM | 显示全部楼层
原帖由 Freedom84 于 8-4-2006 07:58 PM 发表
I read oredi the website u giv...

because u r using the ODBC, so i think is the connection problem...

do u hav register a new ODBC connection with the sql server at ur Data Source??


我希望你可以用中文因为这里是中文论坛会给他们扣分的。

我不是用SQLServer的。
我是用MySQL的。
回复

使用道具 举报

 楼主| 发表于 8-4-2006 10:27 PM | 显示全部楼层
原帖由 eddom 于 8-4-2006 06:10 PM 发表
你應該要用 Request 的方法吧


ASP.net不是不用这个的吗?
在同一页

[ 本帖最后由 红发 于 10-4-2006 12:22 PM 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 13-11-2024 08:28 PM , Processed in 0.381962 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表