extract from the active directory

jiayun1 2010-04-07 04:48:18
哎 题目不知道怎么描述。

内部员工登陆电脑操作,要提取出员工的姓名和电话。
数据库有一张表。有这两个字段。


session?要怎么写代码呢?
...全文
157 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzxap 2010-04-08
  • 打赏
  • 举报
回复
private void btlogin_Click(object sender, System.EventArgs e)
{ string UserID = userid.Text;
string Pwd = pwd.Text;
string mySql = "select Count(*) from Manager where UserName='"+UserID+"' and Pwd ='"+Pwd+"'";
SqlConnection connection = null ;
try
{
try
{
connection = SqlHelper.GetConnection();
}
catch
{
MessageBox.Show("The connection with the database can't be established", "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}

Int32 count = (Int32)SqlHelper.ExecuteScalar(connection,CommandType.Text,mySql);
if (count > 0)
{
DialogResult = DialogResult.OK;

//把登陆帐号写入Users.xml文件
DataSet ds = new DataSet();
string filename = "Users.xml";
ds.ReadXmlSchema(filename);
DataRow dr = ds.Tables[0].NewRow();
dr[0] = userid.Text;
ds.Tables[0].Rows.Add(dr);
ds.WriteXml(filename);
}
else
{
DialogResult = DialogResult.None;
MessageBox.Show("登陆帐号或密码错误,请重新输入!","登陆错误",MessageBoxButtons.OK,MessageBoxIcon.Error);

}
}
catch(Exception ex)
{
string errMessage = "";
for( Exception tempException = ex; tempException != null ; tempException = tempException.InnerException )
{
errMessage += tempException.Message + Environment.NewLine + Environment.NewLine;
}

MessageBox.Show( string.Format( "There are some problems while trying to use the Data Access Application block, please check the following error messages: {0}"
+ Environment.NewLine + "This test requires some modifications to the Northwind database. Please make sure the database has been initialized using the SetUpDataBase.bat database script, or from the Install Quickstart option on the Start menu.", errMessage ),
"Application error", MessageBoxButtons.OK, MessageBoxIcon.Error );
}
finally
{

if(connection != null)
connection.Dispose();
}



}

private void btcancel_Click(object sender, System.EventArgs e)
{
Application.Exit();
}

private void pwd_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyValue == (char)13)
{
btlogin.Focus();

}
}

private void Flogin_Load(object sender, System.EventArgs e)
{
//从Users.xml文件读出登陆帐号
DataSet ds = new DataSet();
FileStream fs = new FileStream("Users.xml",FileMode.Open,FileAccess.Read);
StreamReader reader = new StreamReader(fs);
ds.ReadXml(reader);
fs.Close();
DataRow dr = ds.Tables[0].Rows[0];
userid.Text = dr[0].ToString();

}
}
Liang_ZhiQiang 2010-04-08
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 jiayun1 的回复:]
引用 9 楼 jiayun1 的回复:
引用 8 楼 liang_zhiqiang 的回复:
用户登录时,提交用户名和密码到数据核对,然后顺路查出部分要用的东西存到session中,然后可以再不同的页面提取自己要信息。

这么复杂?
用户都是我们自己的员工。
别人登不到这个页面。

主要是不知道怎么判断谁是谁。没有登陆页面。还就那一个页面。
[/Quote]


x额,这个用户登录验证的功能是最简单了的。
你要记录谁操作了,就必须给个规则。
肖无疾 2010-04-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jiayun1 的回复:]
引用 1 楼 hjw01592 的回复:
这个。。。很难吗?还是我想的太简单了?

简单的就简单的说。
在页面上显示,不是sql, sql查询我会写。
首先要判断是谁登录的。
比如kavin登陆 ,
要系统里他的电话908-371
我在某一个事件里要用这两个字段。
taker:
phone:
[/Quote]
取消匿名,使用windows验证
Request.LogonUserIdentity.Name
criedshy 2010-04-08
  • 打赏
  • 举报
回复
这个事要慢慢理顺思路,代码就不分层,直接写在一起了

1.从数据库获取数据 这是SQL
select userId,userName,userTel from T_UserInfo where userId=@userId

这里可以写成一个方法
private void GetLoginUserInfo(string loginUserId)
{
try
{
Using(SqlConnection conn=new SqlConnection("server=your server ip;database=your db;user=your sql server login user name;pwd=your pwd;"))
{
string strSQL="select userId,userName,userTel from T_UserInfo where userId='"+loginUserId+"'";
SqlCommand cmd=new SqlCommand(strSQL,conn);
conn.Open();
SqlDataReader dr =cmd.ExecuteReader();
int i=0;
while(dr.Read())
{
if(i>0) throw new Exception("more than one user");
Session["UserId"]=dr[0].ToString();
Session["UserName"]=dr[1].ToString();
Session["UserTel"]=dr[2].ToString();
i++;
}
dr.Close();
}
}
catch(Exception ex){ throw ex;}

}


2.将登录者的name ,telphone 显示在page上,这里可以用label显示,命名为lblUserName,lblTelNo,同时将信息保存在Session里,这里用一个按钮表示登录

protected void btnLogin_Click(object sender, EventArgs e)
{
GetLoginUserInfo();
//将用户信息显示在页面上
if(Session["UserName"]!=null) this.lblUserName.Text=Session["UserName"].ToString();
if(Session["UserTel"]!=null) thie.lblTelNo.Text=Session["UserTel"].ToString();
//TODO:add your other operations
}

3.Session是针对当前用户的,在没过期内不存在要判断哪个用户登录的,因为session里已经保存了当前的用户的电话;其他事件(可以是别个页面)调用Session的值,调用前先判断一下是否为空


if(Session["UserName"]!=null) 
{
//TODO:your code
}
if(Session["UserTel"]!=null)
{
//TODO:your code
}



PS:代码没有验证,有错误自行更改!
肖无疾 2010-04-08
  • 打赏
  • 举报
回复
姐姐是要从AD中获取信息吗?
用 DirectorySearcher 吧,大概是这样的
filter="(&(sAMAccountName=取访问者帐号)(objectClass=person)(objectCategory=person))"
properties=new string[] { "sAMAccountName", "name", "description" }//要找的字段
yan11cn 2010-04-08
  • 打赏
  • 举报
回复
session("Ft_UserName")=Ft_UserName
直观一点:

<%
Sub login()
Ft_UserName=request.Form("Ft_UserName")
Ft_PassWord=request.Form("Ft_PassWord")
'Ft_Code=request.Form("Ft_Code")
if Ft_UserName<>"" then
Call db_conn()
Call dbRs(0,"select * from Ft_User where Ft_UserName='"&Ft_UserName&"' and Ft_PassWord='" & MD5(Ft_PassWord) & "'" )
if rs.eof then
Call Salert("用户名密码错误!","../index.asp")
else
'if Ft_Code<>Session("pSN") then
' Call Salert("请输入正确的验证码!","login.asp")
'else
session("Ft_UserName")=Ft_UserName '登录成功之后写session
response.Redirect "index.asp"
response.end
'end if
end if
end if
End Sub
%>
yan11cn 2010-04-08
  • 打赏
  • 举报
回复
然后每个需要判断是否登录的页面我都包含了
login_user.asp这个文件:
<%
if session("Ft_UserName")="" then
response.Write "<script>alert('请登录');window.location.href='../index.asp';</script>"
end if
%>
yan11cn 2010-04-08
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 jiayun1 的回复:]
主要是不知道怎么判断谁是谁。没有登陆页面。还就那一个页面。
[/Quote]
姐姐 这个不难 我用asp来描述下
一般登录的时候,判断用户名密码,正确的话 就写session或者cookies
这样在其他页面判断是谁登录的时候,就直接调用session或者cookies就OK了
下面是我的一个asp实例:

Sub login()
Ft_UserName=request.Form("Ft_UserName")
Ft_PassWord=request.Form("Ft_PassWord")
'Ft_Code=request.Form("Ft_Code")
if Ft_UserName<>"" then
Call db_conn()
Call dbRs(0,"select * from Ft_User where Ft_UserName='"&Ft_UserName&"' and Ft_PassWord='" & MD5(Ft_PassWord) & "'" )
if rs.eof then
Call Salert("用户名密码错误!","../index.asp")
else
'if Ft_Code<>Session("pSN") then
' Call Salert("请输入正确的验证码!","login.asp")
'else
session("Ft_UserName")=Ft_UserName
response.Redirect "index.asp"
response.end
'end if
end if
end if
End Sub
criedshy 2010-04-08
  • 打赏
  • 举报
回复
using System.Web.Security;
using System.Runtime.InteropServices;

[DllImport("advapi32.dll", CharSet=CharSet.Auto)]
public static extern int LogonUser(String lpszUserName,
String lpszDomain,
String lpszPassword,
int dwLogonType,
int dwLogonProvider,
ref IntPtr phToken);

public const int LOGON32_LOGON_INTERACTIVE = 2;
public const int LOGON32_PROVIDER_DEFAULT = 0;

void Login_Click(Object sender, EventArgs E)
{
IntPtr token = IntPtr.Zero;

if(LogonUser(UserName.Value,
UserDomain.Value,
UserPass.Value,
LOGON32_LOGON_INTERACTIVE,
LOGON32_PROVIDER_DEFAULT,
ref token) != 0)
{
FormsAuthentication.RedirectFromLoginPage(UserName.Value,
PersistCookie.Checked);
}
else
{
lblResults.Text = "Invalid Credentials: Please try again";
}
}
criedshy 2010-04-08
  • 打赏
  • 举报
回复
你问题描述太差了

就是用公司的域帐号登录啊,我倒,还费了半天劲
bbqqqbq 2010-04-08
  • 打赏
  • 举报
回复
你们的这个登陆不会是根据别人登陆的IP来看谁是谁的吧?
问题表述得不是很清楚
肖无疾 2010-04-08
  • 打赏
  • 举报
回复

using System.DirectoryServices;

DirectorySearcher ds = new DirectorySearcher("(sAMAccountName=" + Request.LogonUserIdentity.Name.Split('\\')[1] + ")");
SearchResult sr = ds.FindOne();
Response.Write("姓名:" + sr.Properties["name"][0].ToString());
Response.Write("<br>电话:" + sr.Properties["telephonenumber"][0].ToString());
jiayun1 2010-04-08
  • 打赏
  • 举报
回复
以上都很有道理。我先写个登陆页面吧还是。
有了登陆页面后,我在接着写吧。
还得验证一把。des加密的还是。
老外给我的这个项目网址是local的。只有我们自己员工用,而且只有一个页面,全是些选项卡。


好比intranet上,因为是域系统。一但登陆了computer就已经知道谁是谁了,
他们的这个活动目录怎么弄出来的,我是没研究明白,
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 jiayun1 的回复:]
引用 9 楼 jiayun1 的回复:
引用 8 楼 liang_zhiqiang 的回复:
用户登录时,提交用户名和密码到数据核对,然后顺路查出部分要用的东西存到session中,然后可以再不同的页面提取自己要信息。

这么复杂?
用户都是我们自己的员工。
别人登不到这个页面。

主要是不知道怎么判断谁是谁。没有登陆页面。还就那一个页面。
[/Quote]
登录的时候不用Name 和PWD么?用就记录成Seesion就行了都?
再不行,从数据库中找详细的???
保存为Cookie也行啊???
jiayun1 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 telankes2000 的回复:]
你这个是winform程序吗
[/Quote]
default.aspx
jiayun1 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jiayun1 的回复:]
引用 8 楼 liang_zhiqiang 的回复:
用户登录时,提交用户名和密码到数据核对,然后顺路查出部分要用的东西存到session中,然后可以再不同的页面提取自己要信息。

这么复杂?
用户都是我们自己的员工。
别人登不到这个页面。
[/Quote]
主要是不知道怎么判断谁是谁。没有登陆页面。还就那一个页面。
jiayun1 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jiayun1 的回复:]
引用 6 楼 liang_zhiqiang 的回复:
引用楼主 jiayun1 的回复:
哎 题目不知道怎么描述。

内部员工登陆电脑操作,要提取出员工的姓名和电话。
数据库有一张表。有这两个字段。


session?要怎么写代码呢?


你这是要登录电脑操作,还是自己的系统操作。


登陆电脑。
once the employee logged into a co……
[/Quote]

写错了 确切的说登陆到显示的页面。
telankes2000 2010-04-07
  • 打赏
  • 举报
回复
你这个是winform程序吗
jiayun1 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 liang_zhiqiang 的回复:]
用户登录时,提交用户名和密码到数据核对,然后顺路查出部分要用的东西存到session中,然后可以再不同的页面提取自己要信息。
[/Quote]
这么复杂?
用户都是我们自己的员工。
别人登不到这个页面。
Liang_ZhiQiang 2010-04-07
  • 打赏
  • 举报
回复
用户登录时,提交用户名和密码到数据核对,然后顺路查出部分要用的东西存到session中,然后可以再不同的页面提取自己要信息。
加载更多回复(7)
// $Id: INSTALL.txt,v 1.61.2.4 2008/07/09 19:15:59 goba Exp $ CONTENTS OF THIS FILE --------------------- * Requirements * Optional requirements * Installation * Drupal administration * Customizing your theme(s) * Multisite Configuration * More Information REQUIREMENTS ------------ Drupal requires a web server, PHP 4 (4.3.5 or greater) or PHP 5 (http://www.php.net/) and either MySQL (http://www.mysql.com/) or PostgreSQL (http://www.postgresql.org/). The Apache web server and MySQL database are recommended; other web server and database combinations such as IIS and PostgreSQL have been tested to a lesser extent. When using MySQL, version 4.1.1 or greater is recommended to assure you can safely transfer the database. For more detailed information about Drupal requirements, see "Requirements" (http://drupal.org/requirements) in the Drupal handbook. For detailed information on how to configure a test server environment using a variety of operating systems and web servers, see "Local server setup" (http://drupal.org/node/157602) in the Drupal handbook. OPTIONAL TASKS -------------- - To use XML-based services such as the Blogger API and RSS syndication, you will need PHP's XML extension. This extension is enabled by default. - To use Drupal's "Clean URLs" feature on an Apache web server, you will need the mod_rewrite module and the ability to use local .htaccess files. For Clean URLs support on IIS, see "Using Clean URLs with IIS" (http://drupal.org/node/3854) in the Drupal handbook. - Various Drupal features require that the web server process (for example, httpd) be able to initiate outbound connections. This is usually possible, but some hosting providers or server configurations forbid such connections. The features that depend on this functionality include the integrated "Update status" module (which downloads information about available updates of Drupal core and any installed contributed modules and themes), the ability to log in via OpenID, fetching aggregator feeds, or other network-dependent services. INSTALLATION ------------ 1. DOWNLOAD DRUPAL AND OPTIONALLY A TRANSLATION You can obtain the latest Drupal release from http://drupal.org/. The files are in .tar.gz format and can be extracted using most compression tools. On a typical Unix command line, use: wget http://drupal.org/files/projects/drupal-x.x.tar.gz tar -zxvf drupal-x.x.tar.gz This will create a new directory drupal-x.x/ containing all Drupal files and directories. Move the contents of that directory into a directory within your web server's document root or your public HTML directory: mv drupal-x.x/* drupal-x.x/.htaccess /var/www/html If you would like to have the default English interface translated to a different language, we have good news. You can install and use Drupal in other languages from the start. Check whether a released package of the language desired is available for this Drupal version at http://drupal.org/project/translations and download the package. Extract the contents to the same directory where you extracted Drupal into. 2. CREATE THE CONFIGURATION FILE AND GRANT WRITE PERMISSIONS Drupal comes with a default.settings.php file in the sites/default directory. The installer uses this file as a template to create your settings file using the details you provide through the install process. To avoid problems when upgrading, Drupal is not packaged with an actual settings file. You must create a file named settings.php. You may do so by making a copy of default.settings.php (or create an empty file with this name in the same directory). For example, (from the installation directory) make a copy of the default.settings.php file with the command: cp sites/default/default.settings.php sites/default/settings.php Next, give the web server write privileges to the sites/default/settings.php file with the command (from the installation directory): chmod o+w sites/default/settings.php So that the files directory can be created automatically, give the web server write privileges to the sites/default directory with the command (from the installation directory): chmod o+w sites/default 3. CREATE THE DRUPAL DATABASE Drupal requires access to a database in order to be installed. Your database user will need sufficient privileges to run Drupal. Additional information about privileges, and instructions to create a database using the command line are available in INSTALL.mysql.txt (for MySQL) or INSTALL.pgsql.txt (for PostgreSQL). To create a database using PHPMyAdmin or a web-based control panel consult the documentation or ask your webhost service provider. Take note of the username, password, database name and hostname as you create the database. You will enter these items in the install script. 4. RUN THE INSTALL SCRIPT To run the install script point your browser to the base URL of your website (e.g., http://www.example.com). You will be guided through several screens to set up the database, create tables, add the first user account and provide basic web site settings. The install script will attempt to create a files storage directory in the default location at sites/default/files (the location of the files directory may be changed after Drupal is installed). In some cases, you may need to create the directory and modify its permissions manually. Use the following commands (from the installation directory) to create the files directory and grant the web server write privileges to it: mkdir sites/default/files chmod o+w sites/default/files The install script will attempt to write-protect the settings.php file and the sites/default directory after saving your configuration. However, you may need to manually write-protect them using the commands (from the installation directory): chmod a-w sites/default/settings.php chmod a-w sites/default If you make manual changes to the file later, be sure to protect it again after making your modifications. Failure to remove write permissions to that file is a security risk. Although the default location for the settings.php file is at sites/default/settings.php, it may be in another location if you use the multi-site setup, as explained below. 5. CONFIGURE DRUPAL When the install script succeeds, you will be directed to the "Welcome" page, and you will be logged in as the administrator already. Proceed with the initial configuration steps suggested on the "Welcome" page. If the default Drupal theme is not displaying properly and links on the page result in "Page Not Found" errors, try manually setting the $base_url variable in the settings.php file if not already set. It's currently known that servers running FastCGI can run into problems if the $base_url variable is left commented out (see http://bugs.php.net/bug.php?id=19656). 6. REVIEW FILE SYSTEM STORAGE SETTINGS AND FILE PERMISSIONS The files directory created in step 4 is the default file system path used to store all uploaded files, as well as some temporary files created by Drupal. After installation, the settings for the file system path may be modified to store uploaded files in a different location. It is not necessary to modify this path, but you may wish to change it if: * your site runs multiple Drupal installations from a single codebase (modify the file system path of each installation to a different directory so that uploads do not overlap between installations); or, * your site runs a number of web server front-ends behind a load balancer or reverse proxy (modify the file system path on each server to point to a shared file repository). To modify the file system path: * Ensure that the new location for the path exists or create it if necessary. To create a new directory named uploads, for example, use the following command from a shell or system prompt (while in the installation directory): mkdir uploads * Ensure that the new location for the path is writable by the web server process. To grant write permissions for a directory named uploads, you may need to use the following command from a shell or system prompt (while in the installation directory): chmod o+w uploads * Access the file system path settings in Drupal by selecting these menu items from the Navigation menu: Administer > Site configuration > File system Enter the path to the new location (e.g.: uploads) at the File System Path prompt. Changing the file system path after files have been uploaded may cause unexpected problems on an existing site. If you modify the file system path on an existing site, remember to copy all files from the original location to the new location. Some administrators suggest making the documentation files, especially CHANGELOG.txt, non-readable so that the exact version of Drupal you are running is slightly more difficult to determine. If you wish to implement this optional security measure, use the following command from a shell or system prompt (while in the installation directory): chmod a-r CHANGELOG.txt Note that the example only affects CHANGELOG.txt. To completely hide all documentation files from public view, repeat this command for each of the Drupal documentation files in the installation directory, substituting the name of each file for CHANGELOG.txt in the example. For more information on setting file permissions, see "Modifying Linux, Unix, and Mac file permissions" (http://drupal.org/node/202483) or "Modifying Windows file permissions" (http://drupal.org/node/202491) in the online handbook. 7. CRON MAINTENANCE TASKS Many Drupal modules have periodic tasks that must be triggered by a cron maintenance task, including search module (to build and update the index used for keyword searching), aggregator module (to retrieve feeds from other sites), ping module (to notify other sites about new or updated content), and system module (to perform routine maintenance and pruning on system tables). To activate these tasks, call the cron page by visiting http://www.example.com/cron.php, which, in turn, executes tasks on behalf of installed modules. Most systems support the crontab utility for scheduling tasks like this. The following example crontab line will activate the cron tasks automatically on the hour: 0 * * * * wget -O - -q -t 1 http://www.example.com/cron.php More information about cron maintenance tasks are available in the help pages and in Drupal's online handbook at http://drupal.org/cron. Example scripts can be found in the scripts/ directory. DRUPAL ADMINISTRATION --------------------- A new installation of Drupal defaults to a very basic configuration with only a few active modules and minimal user access rights. Use your administration panel to enable and configure services. For example: General Settings Administer > Site configuration > Site information Enable Modules Administer > Site building > Modules Configure Themes Administer > Site building > Themes Set User Permissions Administer > User management > Permissions For more information on configuration options, read the instructions which accompany the different configuration settings and consult the various help pages available in the administration panel. Community-contributed modules and themes are available at http://drupal.org/. CUSTOMIZING YOUR THEME(S) ------------------------- Now that your installation is running, you will want to customize the look of your site. Several sample themes are included and more can be downloaded from drupal.org. Simple customization of your theme can be done using only CSS. Further changes require understanding the phptemplate engine that is part of Drupal. See http://drupal.org/handbook/customization to find out more. MULTISITE CONFIGURATION ----------------------- A single Drupal installation can host several Drupal-powered sites, each with its own individual configuration. Additional site configurations are created in subdirectories within the 'sites' directory. Each subdirectory must have a 'settings.php' file which specifies the configuration settings. The easiest way to create additional sites is to copy the 'default' directory and modify the 'settings.php' file as appropriate. The new directory name is constructed from the site's URL. The configuration for www.example.com could be in 'sites/example.com/settings.php' (note that 'www.' should be omitted if users can access your site at http://example.com/). Sites do not have to have a different domain. You can also use subdomains and subdirectories for Drupal sites. For example, example.com, sub.example.com, and sub.example.com/site3 can all be defined as independent Drupal sites. The setup for a configuration such as this would look like the following: sites/default/settings.php sites/example.com/settings.php sites/sub.example.com/settings.php sites/sub.example.com.site3/settings.php When searching for a site configuration (for example www.sub.example.com/site3), Drupal will search for configuration files in the following order, using the first configuration it finds: sites/www.sub.example.com.site3/settings.php sites/sub.example.com.site3/settings.php sites/example.com.site3/settings.php sites/www.sub.example.com/settings.php sites/sub.example.com/settings.php sites/example.com/settings.php sites/default/settings.php If you are installing on a non-standard port, the port number is treated as the deepest subdomain. For example: http://www.example.com:8080/ could be loaded from sites/8080.www.example.com/. The port number will be removed according to the pattern above if no port-specific configuration is found, just like a real subdomain. Each site configuration can have its own site-specific modules and themes in addition to those installed in the standard 'modules' and 'themes' directories. To use site-specific modules or themes, simply create a 'modules' or 'themes' directory within the site configuration directory. For example, if sub.example.com has a custom theme and a custom module that should not be accessible to other sites, the setup would look like this: sites/sub.example.com/: settings.php themes/custom_theme modules/custom_module NOTE: for more information about multiple virtual hosts or the configuration settings, consult the Drupal handbook at drupal.org. For more information on configuring Drupal's file system path in a multi-site configuration, see step 6 above. MORE INFORMATION ---------------- - For additional documentation, see the online Drupal handbook at http://drupal.org/handbook. - For a list of security announcements, see the "Security announcements" page at http://drupal.org/security (available as an RSS feed). This page also describes how to subscribe to these announcements via e-mail. - For information about the Drupal security process, or to find out how to report a potential security issue to the Drupal security team, see the "Security team" page at http://drupal.org/security-team. - For information about the wide range of available support options, see the "Support" page at http://drupal.org/support.
requires software maintenance through 2008.11.19. (Beta release.) New! Added full support for Web and WPF applications, including ASP/ASP.NET, HTML, XML, JavaScript, VBScript, and XAML. Most VA features like Goto, Find References, Suggestions, and VA Outline work with these projects and file types where applicable. New! Highlight find results (case=5141) 8312, 6665, 6397, 6254, 6028 New! Optional tomato icons in listboxes and tooltips denote content provided by Visual Assist X. (case=20290) New! Added support for makefile projects (e.g. solutions without files) by parsing the physical directory tree of files as they are opened. (case=18918) New! Find References results are grouped by project. (case=19512, case=4087) 8174, 8168, 7463, 5742 New! VA Outline optionally auto-expands nodes as the user navigates in the code editor. (case=19617) New! VA Outline remembers the expanded state of each node when refreshing its contents (not applicable when auto-expand is active). (case=8858) 7989, 7903, 7714, 6664 New! Redundant namespace and class names are omitted from VA Outline nodes to save space. (case=13240) 8083, 7387, 7271 New! Enhanced Syntax Coloring uses better default colors when a dark background is in use. (case=17562, case=9431) 8076, 8029, 6607 New! Singe lines of code containing multiple statements are shown as separate nodes in VA Outline. (case=18580) New! Goto (Alt+G) ignores duplicate filenames opened from other locations, so Alt+G on a method in Main\foo.h goes directly to the implementation in Main\foo.cpp even if Branch\foo.cpp was opened for editing at some point. (case=19423) New! Open File in Solution (OFIS) and Find Symbol in Solution (FSIS) dialogs scroll the highlighted entry to the center vertically to aid in viewing surrounding entries. (case=20182, case=19262) New! OFIS shows the project to which a file belongs. (case=764) 8180, 7899, 3966 New! FSIS persists its "Show only symbols defined in the current solution" state between invocations for the current session. (case=20549) Extracted methods with long parameters lists are generated correctly. (case=5802) 8310, 6078 Fixed global scope resolution operator (::) being changed to a single colon in Extract Method. (case=18573) 8021 Extract Method no longer offers to extract to source file when no source file is present. (case=20181) The context menu is available for symbols even if they are unknown or mistyped. (case=19552) 8170 Suggestion lists utilize the Options | Text Editor | C# | IntelliSense | Committed by pressing the space bar setting correctly. (case=10695) 8213, 7273, 7055 Cloned Find References windows are restored after debugging. (case=9511) 6847 VA Options dialog grays out options that depend on Enhanced Syntax Coloring when that option is disabled. (case=3079) 8184 Shorthand and Acronyms work properly in VB 2008. (case=15202) 8257 Fixed unexpected dismissal of suggestion list in VB when typing a type name after the As keyword (case=20261) 8257 The text caret is placed in the correct location after accepting a .NET Generic from a suggestion list in VB 2008. (case=20259) 8257 When typing a parameter in a C# LINQ predicate function, focus is no longer given to the suggestion list, matching the default VS 2008 behavior. (case=16277) C++ keyword __restrict is recognized. (case=20732) 8307 wmemset and wmemcpy are recognized as valid system functions. (case=18414) 7990 Fixed a case where a managed assembly failed to be properly parsed. (case=20071) VA Outline correctly displays C++ #pragma region/endregion nodes. (case=20612) 8274 Multiline XML comments no longer contain extraneous '/' characters in VA Outline. (case=18539) 8005 Document Method correctly handles array parameters when using the $MethodArgName$ VA Snippet variable. (case=20543) 8285 Fixed problem in which enhanced coloring was not applied to Visual Studio text editor (due to certain color settings). (case=18813) 7993 Fixed GDI resource leak that was exacerbated by the presence of an external clipboard manager utility. (case=20137) Parameter Info tooltips for constructors of child classes render each parameter in bold correctly (fixes issue introduced in 1649). (case=20664) VA Options | Performance | Rebuild Symbol databases causes the db files to be purged at IDE shutdown instead of the next startup (performance enhancement). (case=20799) 8319
* New! Added full support for Web and WPF applications, including ASP/ASP.NET, HTML, XML, JavaScript, VBScript, and XAML. Most VA features like Goto, Find References, Suggestions, and VA Outline work with these projects and file types where applicable. * New! Highlight find results (case=5141) 8312, 6665, 6397, 6254, 6028 * New! Optional tomato icons in listboxes and tooltips denote content provided by Visual Assist X. (case=20290) * New! Added support for makefile projects (e.g. solutions without files) by parsing the physical directory tree of files as they are opened. (case=18918) * New! Find References results are grouped by project. (case=19512, case=4087) 8174, 8168, 7463, 5742 * New! VA Outline optionally auto-expands nodes as the user navigates in the code editor. (case=19617) * New! VA Outline remembers the expanded state of each node when refreshing its contents (not applicable when auto-expand is active). (case=8858) 7989, 7903, 7714, 6664 * New! Redundant namespace and class names are omitted from VA Outline nodes to save space. (case=13240) 8083, 7387, 7271 * New! Enhanced Syntax Coloring uses better default colors when a dark background is in use. (case=17562, case=9431) 8076, 8029, 6607 * New! Singe lines of code containing multiple statements are shown as separate nodes in VA Outline. (case=18580) * New! Goto (Alt+G) ignores duplicate filenames opened from other locations, so Alt+G on a method in Main\foo.h goes directly to the implementation in Main\foo.cpp even if Branch\foo.cpp was opened for editing at some point. (case=19423) * New! Open File in Solution (OFIS) and Find Symbol in Solution (FSIS) dialogs scroll the highlighted entry to the center vertically to aid in viewing surrounding entries. (case=20182, case=19262) * New! OFIS shows the project to which a file belongs. (case=764) 8180, 7899, 3966 * New! FSIS persists its "Show only symbols defined in the current solution" state between invocations for the current session. (case=20549) * Extracted methods with long parameters lists are generated correctly. (case=5802) 8310, 6078 * Fixed global scope resolution operator (::) being changed to a single colon in Extract Method. (case=18573) 8021 * Extract Method no longer offers to extract to source file when no source file is present. (case=20181) * The context menu is available for symbols even if they are unknown or mistyped. (case=19552) 8170 * Suggestion lists utilize the Options | Text Editor | C# | IntelliSense | Committed by pressing the space bar setting correctly. (case=10695) 8213, 7273, 7055 * Cloned Find References windows are restored after debugging. (case=9511) 6847 * VA Options dialog grays out options that depend on Enhanced Syntax Coloring when that option is disabled. (case=3079) 8184 * Shorthand and Acronyms work properly in VB 2008. (case=15202) 8257 * Fixed unexpected dismissal of suggestion list in VB when typing a type name after the As keyword (case=20261) 8257 * The text caret is placed in the correct location after accepting a .NET Generic from a suggestion list in VB 2008. (case=20259) 8257 * When typing a parameter in a C# LINQ predicate function, focus is no longer given to the suggestion list, matching the default VS 2008 behavior. (case=16277) * C++ keyword __restrict is recognized. (case=20732) 8307 * wmemset and wmemcpy are recognized as valid system functions. (case=18414) 7990 * Fixed a case where a managed assembly failed to be properly parsed. (case=20071) * VA Outline correctly displays C++ #pragma region/endregion nodes. (case=20612) 8274 * Multiline XML comments no longer contain extraneous '/' characters in VA Outline. (case=18539) 8005 * Document Method correctly handles array parameters when using the $MethodArgName$ VA Snippet variable. (case=20543) 8285 * Fixed problem in which enhanced coloring was not applied to Visual Studio text editor (due to certain color settings). (case=18813) 7993 * Fixed GDI resource leak that was exacerbated by the presence of an external clipboard manager utility. (case=20137) * Parameter Info tooltips for constructors of child classes render each parameter in bold correctly (fixes issue introduced in 1649). (case=20664) * VA Options | Performance | Rebuild Symbol databases causes the db files to be purged at IDE shutdown instead of the next startup (performance enhancement). (case=20799) 8319

62,041

社区成员

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

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

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

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