asp.net访问网络路径方法(模拟用户登录),asp.net用户登录_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了asp.net访问网络路径方法(模拟用户登录),asp.net用户登录_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2630字,纯文字阅读大概需要4分钟。
内容图文
![asp.net访问网络路径方法(模拟用户登录),asp.net用户登录_PHP教程](/upload/InfoBanner/zyjiaocheng/184/1beecb8c2139463bbbe20209b7098e31.jpg)
asp.net访问网络路径方法(模拟用户登录),asp.net用户登录
核心代码:
public class IdentityScope : IDisposable { // obtains user token [DllImport("advapi32.dll", SetLastError = true)] static extern bool LogonUser(string pszUsername, string pszDomain, string pszPassword,int dwLogonType, int dwLogonProvider, ref IntPtr phToken); // closes open handes returned by LogonUser [DllImport("kernel32.dll", CharSet = CharSet.Auto)] extern static bool CloseHandle(IntPtr handle); [DllImport("Advapi32.DLL")] static extern bool ImpersonateLoggedOnUser(IntPtr hToken); [DllImport("Advapi32.DLL")] static extern bool RevertToSelf(); const int LOGON32_PROVIDER_DEFAULT = 0; const int LOGON32_LOGON_NEWCREDENTIALS = 9;//域ò控?中D的?需è要a用?:Interactive = 2 private bool disposed; ////// 登?录? /// /// 用?户§名? /// 域ò名?,?如?果?不?在ú域ò中D就í使1用?机ú器÷IP地?址· /// 密ü码? public IdentityScope(string sUsername, string sDomain, string sPassword) { // initialize tokens IntPtr pExistingTokenHandle = new IntPtr(0); IntPtr pDuplicateTokenHandle = new IntPtr(0); try { // get handle to token bool bImpersonated = LogonUser(sUsername, sDomain, sPassword,LOGON32_LOGON_NEWCREDENTIALS, LOGON32_PROVIDER_DEFAULT, ref pExistingTokenHandle); if (true == bImpersonated) { if (!ImpersonateLoggedOnUser(pExistingTokenHandle)) { int nErrorCode = Marshal.GetLastWin32Error(); throw new Exception("ImpersonateLoggedOnUser error;Code=" + nErrorCode); } } else { int nErrorCode = Marshal.GetLastWin32Error(); throw new Exception("LogonUser error;Code=" + nErrorCode); } } finally { // close handle(s) if (pExistingTokenHandle != IntPtr.Zero) CloseHandle(pExistingTokenHandle); if (pDuplicateTokenHandle != IntPtr.Zero) CloseHandle(pDuplicateTokenHandle); } } protected virtual void Dispose(bool disposing) { if (!disposed) { RevertToSelf(); disposed = true; } } public void Dispose() { Dispose(true); } }
第二个参数是域名,有域名的话写域名,没有域名写目标机器的IP就可以了
using (IdentityScope c = new IdentityScope("administrator", "192.168.0.1", "11111")) { string[] filelist = System.IO.Directory.GetDirectories(@"\\192.168.0.1\folderName"); }
在web.config里配置一下就可以了
<identity impersonate="true" userName="服务器用户名" password="服务器密码"/>
你可以试试制作一个表,保存页面名称,一个保存用户,然后另外一个关系表,页面编号和用户编号
http://www.bkjia.com/PHPjc/865253.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/865253.htmlTechArticleasp.net访问网络路径方法(模拟用户登录),asp.net用户登录 核心代码: public class IdentityScope : IDisposable{ // obtains user token [DllImport("advapi32.dll",...
内容总结
以上是互联网集市为您收集整理的asp.net访问网络路径方法(模拟用户登录),asp.net用户登录_PHP教程全部内容,希望文章能够帮你解决asp.net访问网络路径方法(模拟用户登录),asp.net用户登录_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。