登录域后直接进系统,无需登录验证!若不是该域用户需要登录验证(B/S)ASP.NET---遇到的问题!望高手进解决!

lfywy 2008-07-02 09:55:50
现在项目中遇到客户需要建立一个域后,只要登录到域里的用户,可以直接进入系统无需填写登录账号密码的!
每次登录到域里的登录名是可以拿到的!
现在我要的是怎么样才能知道匹配的是登录到域了以及域下所有的登录账号如何取得???
环境是域和WEB服务网站都是自己可以设置的!
用户有两种:1.登录到域里的用户 2.不在域里的用户。大家都访问一个自己做的WEB网站。
望高手解决,能给详细代码!
完全解决本人项目中的问题,后另加200分给解决问题的高手!其中100分散分给顶贴者!
有新颖的解决办法者可以另加分!谢谢各位高手和关心问题的程序员!
...全文
4012 60 打赏 收藏 转发到动态 举报
写回复
用AI写文章
60 条回复
切换为时间正序
请发表友善的回复…
发表回复
lfywy 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 57 楼 dafuhaizhu 的回复:]
呵呵 我刚做了这个功能 ,几乎一样的,稍后发布代码 你们看看哈
[/Quote]
没看到你得代码啊?呵呵,这个问题已经基本解决了,需要的进我的BLOG里看
danceboy_520 2011-08-13
  • 打赏
  • 举报
回复
[Quote=引用 57 楼 dafuhaizhu 的回复:]
呵呵 我刚做了这个功能 ,几乎一样的,稍后发布代码 你们看看哈
[/Quote]

兄弟:能否共享之?
danceboy_520 2011-08-13
  • 打赏
  • 举报
回复
LZ,我看了你的方法,很不错,但是我不能知道域管理员的账号和密码,请问我该如何处理?
dafuhaizhu 2011-05-28
  • 打赏
  • 举报
回复
呵呵 我刚做了这个功能 ,几乎一样的,稍后发布代码 你们看看哈
sisi88 2011-01-27
  • 打赏
  • 举报
回复
帮顶~~
pansy0000 2010-07-26
  • 打赏
  • 举报
回复
看看 结果
lfywy 2008-07-16
  • 打赏
  • 举报
回复
lfywy 2008-07-09
  • 打赏
  • 举报
回复
谢谢各位关心和帮助!我的问题基本完全解决!
足球中国 2008-07-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 live_7sky 的回复:]
引用 3 楼 pazzini 的回复:
获取登录域的帐号使用如下代码:

string userAcc = System.Web.HttpContext.Current.User.Identity.Name.Trim();
int len = userAcc.IndexOf('\\', 0);
userAcc = userAcc.Substring(len + 1, userAcc.Length - len - 1);

IIS上将你发布的网站的安全性设为“集成Windows域验证”,通过上面的代码就可以获得登录域的用户的帐号。

这个时候你在判断一下userAcc是否为空,即可以判断出用…
[/Quote]
紫气东来_999 2008-07-05
  • 打赏
  • 举报
回复
补充下需要:


//
using System.DirectoryServices;
using System.Configuration;
using System.Text.RegularExpressions;
紫气东来_999 2008-07-05
  • 打赏
  • 举报
回复



/// <summary>
/// 读取AD用户信息
/// </summary>
/// <param name="ADUsername">用户</param>
/// <param name="ADPassword">密码</param>
/// <param name="domain">域名</param>
/// <returns></returns>
public static SortedList AdUserInfo(string ADUsername, string ADPassword, string domain ,Label lb)
{
DirectorySearcher src;
string ADPath = "LDAP://" + domain;// "ou=总公司,DC=abc,DC=com,DC=cn"; +",ou=总公司"
SortedList sl = new SortedList();
string GroupName = string.Empty;
GroupName = "总公司";
DirectoryEntry de = new DirectoryEntry(ADPath, ADUsername, ADPassword);
//string domainFilter=ConfigurationManager.AppSettings["DomainFilter"].ToString();
//string domainFilter=System.Configuration.ConfigurationManager.AppSettings["DomainFilter"];
string domainFilter="";

if (domainFilter != string.Empty || domainFilter != "")
{
domainFilter = domainFilter.Replace("_", "&"); //("(&(objectCategory=person)(objectClass=user))");
src = new DirectorySearcher(domainFilter);
}
else
{
src = new DirectorySearcher();
}
src.SearchRoot = de;
src.PageSize = 10000;// 此参数可以任意设置,但不能不设置,如不设置读取AD数据为0~999条数据,设置后可以读取大于1000条数据。
// src.SizeLimit = 2000;
src.SearchScope = SearchScope.Subtree;
try
{
foreach (SearchResult res in src.FindAll()) // foreach (SearchResult res in src.FindAll()) foreach (DirectoryEntry res in de.Children)
{
//if (res.GetDirectoryEntry().Properties["EmailAddress"].Value != "")
//{

//sl.Add(res.GetDirectoryEntry().Properties["Name"].Value, res.GetDirectoryEntry().InvokeGet("Description"));
sl.Add(res.GetDirectoryEntry().Properties["Name"].Value, res.GetDirectoryEntry().Properties["EmailAddress"].Value);

// }
}
}
catch (Exception ex)
{
//AppException oAppException = new AppException("Get Ad Info", ex);
lb.Text = ex.Message;
}
return sl;
}

lfywy 2008-07-05
  • 打赏
  • 举报
回复
等一切弄完我把这个写一个文章,再和大家分享,期待中~~~~
望高手能来解决相关问题!
lfywy 2008-07-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 pazzini 的回复:]
如果工作组用户也可以通过这段代码取到帐号的话,你可以把域名或工作组名取出来比较一下,就很容易区分用户是通过什么方式登录的了:

string userAcc = System.Web.HttpContext.Current.User.Identity.Name.Trim();
int len = userAcc.IndexOf('\\', 0);
userAcc = userAcc.Substring(len + 1, userAcc.Length - len - 1);
string strDomain = userAcc.Substring(0, len-1);
[/Quote]
这种方法是拿不到域名的!
我现在想实现用C#语言拿到域名和域IP地址,当然是在进入域环境后拿到,我用JS语言已经拿到,不过总要把Active启用或添加信任站才可以!而且我已经实现拿到域名下的所有用户的登录名了!
望高手指点!
JS语句拿域名:
var WshNetwork = new ActiveXObject("WScript.Network");
alert("Domain = " + WshNetwork.UserDomain);//此为拿域名
alert("Computer Name = " + WshNetwork.ComputerName); //机器名
alert("User Name = " + WshNetwork.UserName);
lugsbbs 2008-07-05
  • 打赏
  • 举报
回复
帮顶!
lfywy 2008-07-05
  • 打赏
  • 举报
回复
[Quote=引用 48 楼 isline 的回复:]
Request.ServerVariables["LOGON_USER"].ToString()
试试这个能不能获得登陆域额帐户。
[/Quote]
我在7楼就给了!
lfywy 2008-07-05
  • 打赏
  • 举报
回复
[Quote=引用 47 楼 isline 的回复:]
http://msdn.microsoft.com/en-us/library/aa705950.aspx
[/Quote]
谢谢!仔细看了!还不错!
itymx 2008-07-05
  • 打赏
  • 举报
回复
强啊
  • 打赏
  • 举报
回复
Request.ServerVariables["LOGON_USER"].ToString()
试试这个能不能获得登陆域额帐户。
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/en-us/library/aa705950.aspx
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/en-us/library/aa705950.aspx
加载更多回复(40)

62,047

社区成员

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

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

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

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