菜鸟弱弱的问各位大大~~~

天空丶蒋 2014-01-01 12:58:19
我们开发的ASP.NET项目是能发布到局域网中吗??



比如说,我这边打开我这个项目,一个和我一样的网的电脑能够访问我打开的这个项目的网站吗??越学越感觉疑惑...


求解答,也许说的不是很清楚吧,但是不知道该如何表达了。、
...全文
321 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
天空丶蒋 2014-01-08
  • 打赏
  • 举报
回复
引用 24 楼 Oo736622510 的回复:
return udp.GetUser(userName, password); 我怎么没看到udp这个类啊,还有 你数据库的存储过程语句也贴出来看看,目前我还没看到什么异样
udp是那个DAL类啊.... 登录就用了一个存储过程 USE [stock] GO /****** Object: StoredProcedure [dbo].[demo_User_Login] Script Date: 01/08/2014 03:34:23 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ------------------------------------------------------------------------------- -- 名称:demo_User_Login -- 用途:通过条件进行用户验证 --参数: ------------------------------------------------------------------------------- ALTER PROCEDURE [dbo].[demo_User_Login]( @UserName nvarchar(20), @Password nvarchar(20) ) AS BEGIN SELECT * FROM tab_users WHERE username=@UserName and password=@Password and accountstatus=1 END
Oo736622510 2014-01-06
  • 打赏
  • 举报
回复
return udp.GetUser(userName, password); 我怎么没看到udp这个类啊,还有 你数据库的存储过程语句也贴出来看看,目前我还没看到什么异样
  • 打赏
  • 举报
回复
引用 19 楼 Oo736622510 的回复:
把登陆代码贴出来,验证用户名和密码问题你需要去数据库看看你的表记录,看看你的用户名和密码是不是对应的
帮下忙````
天空丶蒋 2014-01-04
  • 打赏
  • 举报
回复
model层、
using System;

namespace Newer.Net.Model.Admin
{
	/// <summary>
    /// 用户业务实体类。
	/// </summary>
    [Serializable]
	public class UserInfo
    {
        #region 内部成员变量
        private int userid;
        private string username;
        private string password;
        private Int16 accountstatus;
        private int roleid;
        private RoleInfo role;
        #endregion

        /// <summary>
        /// 构造函数
        /// </summary>
        public UserInfo()
        {

        }

        /// <summary>
        /// 获取或设置用户编号
        /// </summary>
        public int UserID
        {
            get { return userid; }
            set { userid = value; }
        }

        /// <summary>
        /// 获取或设置用户名
        /// </summary>
        public string UserName
        {
            get { return username; }
            set { username = value; }
        }

        /// <summary>
        /// 获取或设置用户密码
        /// </summary>
        public string Password
        {
            get { return password; }
            set { password = value; }
        }

        /// <summary>
        /// 获取或设置用户状态
        /// </summary>
        public Int16 AccountStatus
        {
            get { return accountstatus; }
            set { accountstatus = value; }
        }

        /// <summary>
        /// 获取或设置用户角色
        /// </summary>
        public int RoleID
        {
            get { return roleid; }
            set { roleid = value; }
        }

        public RoleInfo Role
        {
            get { return role; }
            set { role = value; }
        }
	}
}
天空丶蒋 2014-01-04
  • 打赏
  • 举报
回复
BLL层。
using System;
using System.Collections.Generic;

using Newer.Net.Common;
using Newer.Net.Common.Enumerations;
using Newer.Net.DataProvider.Admin;
using Newer.Net.Model.Admin;

namespace Newer.Net.BusinessLogic.Admin
{
    /// <summary>
    /// 用户业务逻辑类
    /// 包括基于用户的增、删、改、查等操作。
    /// </summary>
    public class Users
    {
        // 实现菜单逻辑的数据提供者
        private static readonly UserDataProvider udp = new UserDataProvider();

        public Users()
		{			
		}

        public static void CreateUpdateDeleteUser(UserInfo user, DataProviderAction action, out DataProviderStatus status)
        {
            udp.CreateUpdateDeleteUser(user, action, out status);            
        }

        /// <summary>
        /// 根据 ID 获取用户实体。
        /// </summary>
        /// <param name="userID">用户编号</param>
        /// <returns>用户对象的实体</returns>
        public static UserInfo GetUserById(int userId)
        {
            return udp.GetUserById(userId);
        }

        public static List<UserInfo> GetUsersByCondition(string userName, string accountStatus, int pageSize,
            int currentPage, out int itemCount)
        {
            return udp.GetUsersByCondition(userName, accountStatus, pageSize, currentPage, out itemCount);
        }

        public static UserInfo GetUser(string userName, string password)
        {
            return udp.GetUser(userName, password);
        }

        /// <summary>
        /// 根据角色ID查询用户表中是否有用户设置了此角色Id
        /// </summary>
        /// <param name="RoleID"></param>
        /// <returns></returns>
        public static int RolesCount(string RoleID)
        {
            return udp.RoleCount(RoleID);
        }
    }
}
DAL层。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;

using Newer.Net.Model.Admin;
using Newer.Net.Common.Enumerations;
using Newer.Net.DataFactory;

namespace Newer.Net.DataProvider.Admin
{
    /// <summary>
	///  实现用户操作的数据提供者
	/// </summary>
	public class UserDataProvider
    {
        public UserDataProvider()
		{
			
		}

        /// <summary>
        /// 提供创建、更新、删除用户的方法
        /// </summary>
        /// <param name="menu">用户实体对象</param>
        /// <param name="action">执行的动作:Create, Update, Delete</param>
        /// <param name="status">输出值,执行操作的结果</param>
        /// <returns></returns>
        public void CreateUpdateDeleteUser(UserInfo user, DataProviderAction action, out DataProviderStatus status)
        {
            string procname = "demo_Users_CreateUpdateDelete";
            List<IDataParameter> parameters = new List<IDataParameter>(8);
            
            IDataParameter p_UserID = DataHelper.GetDataParameter("@UserID", user.UserID);
            parameters.Add(p_UserID);
            IDataParameter p_UserName = DataHelper.GetDataParameter("@UserName", user.UserName);
            parameters.Add(p_UserName);
            IDataParameter p_Password = DataHelper.GetDataParameter("@Password", user.Password);
            parameters.Add(p_Password);
            IDataParameter p_AccountStatus = DataHelper.GetDataParameter("@AccountStatus", user.AccountStatus);
            parameters.Add(p_AccountStatus);
            IDataParameter p_RoleID = DataHelper.GetDataParameter("@RoleID", user.RoleID);
            parameters.Add(p_RoleID);

            IDataParameter p_Action = DataHelper.GetDataParameter("@Action", (int)action);
            parameters.Add(p_Action);

            status = (DataProviderStatus)Convert.ToInt32(DataHelper.ExecuteScalar(procname, parameters));
        }

        /// <summary>
        /// 将数据对象(IDataReader)转换为带有角色对象的用户实体对象。
        /// </summary>
        /// <param name="dr">数据对象(IDataReader)</param>
        /// <returns>返回值:用户实体对象</returns>
        public UserInfo PopulateUserAndRoleFromIDataReader(IDataReader dr)
        {
            RoleDataProvider rdp = new RoleDataProvider();
            UserInfo user = PopulateUserFromIDataReader(dr);
            user.Role = rdp.PopulateRoleFromIDataReader(dr);

            return user;
            
        }

        /// <summary>
        /// 将数据对象(IDataReader)转换为用户实体对象。
        /// </summary>
        /// <param name="dr">数据对象(IDataReader)</param>
        /// <returns>返回值:用户实体对象</returns>
        private UserInfo PopulateUserFromIDataReader(IDataReader dr)
        {
            UserInfo user = new UserInfo();
            user.UserID = Convert.ToInt32(dr["userid"]);
            user.UserName = Convert.ToString(dr["username"]);
            user.Password = Convert.ToString(dr["password"]);
            user.AccountStatus = Convert.ToInt16(dr["accountstatus"]);
            user.RoleID = Convert.ToInt32(dr["roleid"]);		

            return user;
        }

        /// <summary>
        /// 通过指定用户编号,获取用户实体对象
        /// </summary>
        /// <param name="userId">用户编号</param>
        /// <returns>返回用户实体对象</returns>
        public UserInfo GetUserById(int userId)
        {
            UserInfo user = null;
            string procname = "demo_User_Get";
            List<IDataParameter> parameters = new List<IDataParameter>(1);
            IDataParameter p_UserID = DataHelper.GetDataParameter("@UserID", userId);
            parameters.Add(p_UserID);
            IDataReader dr = DataHelper.ExecuteReader(procname, parameters);
            if (dr != null)
            {
                while (dr.Read())
                {
                    user = PopulateUserFromIDataReader(dr);
                }
                dr.Close();
            }

            return user;
        }

        /// <summary>
        /// 根据查询条件和分页条件,返回符合条件的用户实体对象集合
        /// </summary>
        /// <param name="menuName">用户名称</param>
        /// <param name="description">帐户状态</param>
        /// <param name="pageSize">分页大小</param>
        /// <param name="currentPage">当前页面的索引</param>
        /// <param name="itemCount">输出值,分页总数</param>
        /// <returns>返回分页后的用户实体对象集合</returns>
        public List<UserInfo> GetUsersByCondition(string userName, string accountStatus, int pageSize, int currentPage, out int itemCount)
        {
            List<UserInfo> userSet = new List<UserInfo>();
            string procname = "demo_Users_FindUsers";
            List<IDataParameter> parameters = new List<IDataParameter>(5);

            IDataParameter p_UserName = DataHelper.GetDataParameter("@UserName", userName);
            parameters.Add(p_UserName);

            IDataParameter p_AccountStatus = DataHelper.GetDataParameter("@AccountStatus", accountStatus);
            parameters.Add(p_AccountStatus);

            IDataParameter p_PageSize = DataHelper.GetDataParameter("@PageSize", pageSize);
            parameters.Add(p_PageSize);

            IDataParameter p_currentPage = DataHelper.GetDataParameter("@CurrentPage", currentPage);
            parameters.Add(p_currentPage);

            IDataParameter p_ItemCount = DataHelper.GetDataParameter("@ItemCount", DbType.Int32);
            p_ItemCount.Direction = ParameterDirection.Output;
            parameters.Add(p_ItemCount);

            IDataReader dr = DataHelper.ExecuteReader(procname, parameters);
            if (dr != null)
            {
                while (dr.Read())
                {
                    userSet.Add(PopulateUserAndRoleFromIDataReader(dr));
                }
                dr.Close();
            }

            if (p_ItemCount != null && p_ItemCount.Value.GetType() != typeof(System.DBNull))
            {
                itemCount = (int)p_ItemCount.Value;
            }
            else
            {
                itemCount = 0;
            }

            return userSet;
        }

        /// <summary>
        /// 通过用户名和密码,查找用户。
        /// </summary>
        /// <param name="userName">用户名</param>
        /// <param name="password">密码</param>
        /// <returns>返回找到的用户</returns>
        public UserInfo GetUser(string userName, string password)
        {
            UserInfo user = null;
            string procname = "demo_User_Login";
            List<IDataParameter> parameters = new List<IDataParameter>(2);
            IDataParameter p_UserName = DataHelper.GetDataParameter("@UserName", userName);
            parameters.Add(p_UserName);
            IDataParameter p_Password = DataHelper.GetDataParameter("@Password", password);
            parameters.Add(p_Password);
            IDataReader dr = DataHelper.ExecuteReader(procname, parameters);
            if (dr != null)
            {
                while (dr.Read())
                {
                    user = PopulateUserFromIDataReader(dr);
                }
                dr.Close();
            }

            return user;
        }
        /// <summary>
        /// 根据角色ID查询用户表中是否有用户设置了此角色Id
        /// </summary>
        /// <param name="RoleID"></param>
        /// <returns></returns>
        public int RoleCount(string RoleID)
        {
            string sql = " select count(*) from tab_Users where roleID  in(" + RoleID + ")";
            DataSet ds = DataHelper.ExecuteDataSet(sql);
            if (ds.Tables[0].Rows.Count>0)
            {
                return (int)ds.Tables[0].Rows[0][0];
            }
            return 0;
        }
    }
}
天空丶蒋 2014-01-04
  • 打赏
  • 举报
回复
界面。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Web.Login" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
      <title>系统登录</title>    
</head>
<body>
    <form id="form1" runat="server">
        <div style="text-align:center">
            <table cellspacing="0" cellpadding="0" width="350px" border="0" style="margin-top: 80px">
                <tr>
                    <td>
                        <asp:Image ID="imgTop" runat="server" ImageUrl="images/login_1.jpg" Height="29" Width="350" /></td>
                </tr>
                <tr>
                    <td>
                        <asp:Image ID="imgTitle" runat="server" ImageUrl="images/login_2.jpg" Height="89" Width="350" /></td>
                </tr>
                <tr>
                    <td style="background:url(images/login_3.gif);height:132px;">
                        <table width="95%" border="0" style="text-align:left;">
                            <tr>
                                <td valign="middle" align="right" style="width:34%">
                                    <asp:Label ID="labUserName" runat="server" Text="用户名:"></asp:Label> </td>
                                <td>
                                    <asp:TextBox ID="txtUserName" runat="server" CssClass="logininput"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="valUserNamevalUserName" runat="server" ControlToValidate="txtUserName"
                                        ErrorMessage="*"></asp:RequiredFieldValidator></td>
                            </tr>
                            <tr>
                                <td valign="middle" align="right">
                                    <asp:Label ID="labPassword" runat="server" Text="密码:"></asp:Label>
                                </td>
                                <td>
                                    <asp:TextBox ID="txtPassword" runat="server" CssClass="logininput" TextMode="password"></asp:TextBox><asp:RequiredFieldValidator
                                        ID="valPassword" runat="server" ControlToValidate="txtPassword" ErrorMessage="*"></asp:RequiredFieldValidator></td>
                            </tr>
                            <tr>
                                <td style="height:35px">
                                     </td>
                                <td>
                                    <asp:Button ID="btnLogin" runat="server" Text="登 录" OnClick="btnLogin_Click">
                                    </asp:Button> 
                                    <asp:Button ID="btnReset" runat="server" Text="重 置" CausesValidation="False" 
                                        onclick="btnReset_Click">
                                    </asp:Button><br />
                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>
			</table>
		</div>
    </form>
</body>
</html>
代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Newer.Net.BusinessLogic.Admin;
using Newer.Net.Model.Admin;
namespace Web
{
    public partial class Login : Newer.Net.Common.PageBase 
    { 
        protected void Page_Load(object sender, EventArgs e)
        {
            Session.Clear(); 
        }

        protected void btnLogin_Click(object sender, EventArgs e)
        {
            string userKey = txtUserName.Text;
            string userName = Convert.ToString(HttpContext.Current.Cache[userKey]);
            
                if (string.IsNullOrEmpty(userName))
                {
                    UserInfo user = Users.GetUser(txtUserName.Text, txtPassword.Text);
                    if (user != null) //判断用户是否存在,存在则登录成功,否则登录失败。 
                    {
                        Session["User"] = user;
                        //TimeSpan sessionTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
                        //HttpContext.Current.Cache.Add(userKey, userKey, null, DateTime.MaxValue,
                        //    sessionTimeOut, CacheItemPriority.Default, null);
                        Response.Redirect("Default.aspx");
                    }
                    else
                    {
                        base.Alert("用户名或密码错误!");
                    }
                }
                else
                {
                    throw new ApplicationException("此用户已登录!");
                } 
        }

        protected void btnReset_Click(object sender, EventArgs e)
        {
            txtPassword.Text = "";
            txtUserName.Text = "";
        }
    }
}
Oo736622510 2014-01-04
  • 打赏
  • 举报
回复
把登陆代码贴出来,验证用户名和密码问题你需要去数据库看看你的表记录,看看你的用户名和密码是不是对应的
天空丶蒋 2014-01-03
  • 打赏
  • 举报
回复
引用 14 楼 Oo736622510 的回复:
局域网和广域网发布网站的差别不是很大,只不过广域网多了很多路由器防火墙之类的东西,你要是想在局域网发布网站,首先,你要有服务器,一般开发ASP.NET网站的电脑也可以充当服务器(在不考虑服务器性能的前提下),充当服务器的有个发布网站的文件夹,如果是windows操作系统一般文件夹默认在C盘以wwwroot命名的文件夹。还有,如果你的数据库是远程数据库,要想网站正常运行,你的服务器需要和安装数据库的服务器保持连接状态,还有,要想客户端能够浏览到网页,你需要保证客户端能够正常访问到web服务的端口
我的系统是Xp的,IIS是5.1的。
天空丶蒋 2014-01-03
  • 打赏
  • 举报
回复
引用 14 楼 Oo736622510 的回复:
局域网和广域网发布网站的差别不是很大,只不过广域网多了很多路由器防火墙之类的东西,你要是想在局域网发布网站,首先,你要有服务器,一般开发ASP.NET网站的电脑也可以充当服务器(在不考虑服务器性能的前提下),充当服务器的有个发布网站的文件夹,如果是windows操作系统一般文件夹默认在C盘以wwwroot命名的文件夹。还有,如果你的数据库是远程数据库,要想网站正常运行,你的服务器需要和安装数据库的服务器保持连接状态,还有,要想客户端能够浏览到网页,你需要保证客户端能够正常访问到web服务的端口
这样啊?那我是本机访问的,为何会出现这情况啊???
天空丶蒋 2014-01-03
  • 打赏
  • 举报
回复
引用 13 楼 ltcszk 的回复:
密码错误就检查密码验证的问题啊,比如两个站点是不是用同一个数据库
这个应该是吧,我用我自己的电脑做的啊........
Oo736622510 2014-01-02
  • 打赏
  • 举报
回复
局域网和广域网发布网站的差别不是很大,只不过广域网多了很多路由器防火墙之类的东西,你要是想在局域网发布网站,首先,你要有服务器,一般开发ASP.NET网站的电脑也可以充当服务器(在不考虑服务器性能的前提下),充当服务器的有个发布网站的文件夹,如果是windows操作系统一般文件夹默认在C盘以wwwroot命名的文件夹。还有,如果你的数据库是远程数据库,要想网站正常运行,你的服务器需要和安装数据库的服务器保持连接状态,还有,要想客户端能够浏览到网页,你需要保证客户端能够正常访问到web服务的端口
ltcszk 2014-01-02
  • 打赏
  • 举报
回复
密码错误就检查密码验证的问题啊,比如两个站点是不是用同一个数据库
花败又谁睬 2014-01-02
  • 打赏
  • 举报
回复
引用 2 楼 flyer_ren 的回复:
iis发布下,看下你ip,然后同在一个局域网的就可以访问你的了,如果想外网访问你,你必须是公网ip,或者你是内网,你用路由映射下
這個回覆很到位
  • 打赏
  • 举报
回复
配置IIS,关闭防火墙。。。。。
datahandler2 2014-01-02
  • 打赏
  • 举报
回复
可以,但你要保证你局域网的机子可以互相访问
天空丶蒋 2014-01-02
  • 打赏
  • 举报
回复
引用 9 楼 rabow_ 的回复:
[quote=引用 7 楼 az6161311 的回复:]
[quote=引用 3 楼 rabow_ 的回复:]

如果你单单是想要别人访问的话 用IIS就可以了
如果你想让别人在访问的同时也和你一起开发这个项目,一起做这个网站的话,建议你用源代码管理器~~ (SVN,TFS,VSS等源代码管理器)
那应该怎么操作呢[/quote]
你看你需要哪些 你就自己在网上找一些操作方法啊~~ 我怎么知道你想要什么~~/
自己连自己想要什么都不知道~~ 真是的~[/quote]




Vs打开的项目能够登录成功,并跳转到Defeat页面。


但是IIS打开的页面,用admin这个相同账号,相同的密码登录却提示说账号密码错误,这是什么原因啊 ??
rabow_ 2014-01-02
  • 打赏
  • 举报
回复
引用 7 楼 az6161311 的回复:
[quote=引用 3 楼 rabow_ 的回复:] 如果你单单是想要别人访问的话 用IIS就可以了 如果你想让别人在访问的同时也和你一起开发这个项目,一起做这个网站的话,建议你用源代码管理器~~ (SVN,TFS,VSS等源代码管理器)
那应该怎么操作呢[/quote] 你看你需要哪些 你就自己在网上找一些操作方法啊~~ 我怎么知道你想要什么~~/ 自己连自己想要什么都不知道~~ 真是的~
孤零落叶寒 2014-01-01
  • 打赏
  • 举报
回复
iis发布下,看下你ip,然后同在一个局域网的就可以访问你的了,如果想外网访问你,你必须是公网ip,或者你是内网,你用路由映射下
天空丶蒋 2014-01-01
  • 打赏
  • 举报
回复
引用 2 楼 flyer_ren 的回复:
iis发布下,看下你ip,然后同在一个局域网的就可以访问你的了,如果想外网访问你,你必须是公网ip,或者你是内网,你用路由映射下
那应该怎么操作呢
天空丶蒋 2014-01-01
  • 打赏
  • 举报
回复
引用 3 楼 rabow_ 的回复:
如果你单单是想要别人访问的话 用IIS就可以了 如果你想让别人在访问的同时也和你一起开发这个项目,一起做这个网站的话,建议你用源代码管理器~~ (SVN,TFS,VSS等源代码管理器)
那应该怎么操作呢
加载更多回复(5)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧