小编Kev*_*vin的帖子

获取ASP.NET应用程序中的当前用户名

我正在运行一个需要能够读取当前用户的登录ID的网页.这是我正在使用的代码:

string id = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
Run Code Online (Sandbox Code Playgroud)

目前,这将返回正确的登录,但是当我在此方法中使用它时:

protected Boolean isPageOwner()
{
    string id = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
    alert("User: " + id);
    if (id.Equals(pageOwnerID))
    {
        return true;
    }
    if (accessPermission.ContainsKey(id))
    {
        return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

即使返回的id与pageOwnerID相同,该方法也返回false.我真的不确定我遇到问题的哪一部分.

另外,我的登录ID的格式为string1/string2,但代码将其检索为string1 + string2而不使用斜杠.

任何建议表示赞赏.

问候.

c# asp.net

7
推荐指数
1
解决办法
2万
查看次数

将.html文件转换为图像

我正在寻找能够忠实地将.html文件转换为图像格式的任何实用程序 - 首选png或jpeg.我用Google搜索了几个小时并下载了十几个免费试用版,但似乎没有任何工作.Adobe Acrobat Pro几乎可以使用,但它决定缩小表格单元以适应页面,而不是缩小整个表格.

任何建议表示赞赏.

问候.

html image

6
推荐指数
1
解决办法
1万
查看次数

Visual Studio C# 捕获文本框中的输入键

我正在尝试在 Windows 窗体文本框中捕获 Enter 键。我从教程中得到了这段代码:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    //
    // Detect the KeyEventArg's key enumerated constant.
    //
    if (e.KeyCode == Keys.Enter)
    {
        MessageBox.Show("You pressed enter! Good job!");
    }
    else if (e.KeyCode == Keys.Escape)
    {
        MessageBox.Show("You pressed escape! What's wrong?");
    }
}
Run Code Online (Sandbox Code Playgroud)

但现在我的代码抛出一个编译/构建错误:

The event 'System.Windows.Forms.Control.Enter' can only appear on the left hand
side of += or -=    Line 44 Column 84
Run Code Online (Sandbox Code Playgroud)

一方面我不明白错误信息。另一方面,第 44 行是一个只有换行符的空白行。

任何建议表示赞赏。

问候。

c# visual-studio

5
推荐指数
1
解决办法
2万
查看次数

C#Excel百分比转换为小数

我正在从Excel工作表中读取数据.一些数据是百分比值,这些值自动转换为小数 - 即90% - > 0.90.我似乎无法找到阻止这种情况发生的事情.此外,Excel表格字符串上的数据不是全部吗?那么为什么数字格式会发生呢?

任何建议表示赞赏.

问候.

c# excel formatting

5
推荐指数
1
解决办法
6399
查看次数

C#COM Interop:在Excel工作表中写入单元格

我在winform中使用Microsoft.Office.Interop.Excel,我正在读取一个excel文件,处理数据并输出新的excel文件.但是我在写入单元格时遇到问题 - 特别是添加列标题.这是代码:

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet ws = (Worksheet)wb.Worksheets[1];
for (int i = 0; i < dt.Columns.Count; i++)
{
    for (int j = 0; j < dt.Rows.Count; j++)
    {
        ws.Cells[j + 1, i] = dt.Rows[j][i].ToString();
    }
}
ws.Cells[0, 0] = "Ticket Number";
ws.Cells[0, 1] = "Transit";
ws.Cells[0, 2] = "Outage Start Date";
ws.Cells[0, 3] = "Outage End Date";
ws.Cells[0, 4] = "Business Impact";
wb.Worksheets.Add(ws);
Run Code Online (Sandbox Code Playgroud)

其中"dt"是我的DataTable.嵌套的for循环不会抛出运行时错误,但后面的代码会抛出.错误只是说:COM异常未处理,来自HRESULT的异常:0x800A03EC.

任何建议表示赞赏.

问候.

c# excel com-interop winforms-interop winforms

4
推荐指数
1
解决办法
6611
查看次数

将DateTime.Now转换为不同的时区

这段代码已经工作了很长时间,但是当我尝试将DateTime.Now作为outageEndDate参数传递时,它已经破了:

public Outage(DateTime outageStartDate, DateTime outageEndDate, Dictionary<string, string> weeklyHours, string province, string localProvince)
    {
        this.outageStartDate = outageStartDate;
        this.outageEndDate = outageEndDate;
        this.weeklyHours = weeklyHours;
        this.province = province;
        localTime = TimeZoneInfo.FindSystemTimeZoneById(timeZones[localProvince]);

        if (outageStartDate < outageEndDate)
        {
            TimeZoneInfo remoteTime = TimeZoneInfo.FindSystemTimeZoneById(timeZones[province]);
            outageStartDate = TimeZoneInfo.ConvertTime(outageStartDate, localTime, remoteTime);
            outageEndDate = TimeZoneInfo.ConvertTime(outageEndDate, localTime, remoteTime);
Run Code Online (Sandbox Code Playgroud)

我在最后一行得到的错误消息是在DateTime参数(outageEndDate)上没有正确设置Kind属性.我用谷歌搜索并检查了SO的例子,但我真的不明白错误信息.

任何建议表示赞赏.

问候.

编辑 - 确切的错误消息是:

The conversion could not be completed because the supplied DateTime did not have the Kind
property set correctly.  For example, when the Kind property is DateTimeKind.Local, …
Run Code Online (Sandbox Code Playgroud)

c# datetime

4
推荐指数
1
解决办法
1万
查看次数

使用HtmlAgilityPack选择内部文本

我试图使用HtmlAgilityPack提取一些内部文本.这是感兴趣的HTML:

<select name="Archives" onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;Archives\&#39;,\&#39;\&#39;)&#39;, 0)" id="Archives" style="width:200px;">
    <option selected="selected" value="Dashboard_Jul-2012">Dashboard_Jul-2012</option>
    <option value="Dashboard_Jun-2012">Dashboard_Jun-2012</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我在用:

string output = htmlwriter.InnerWriter.ToString()
var doc = new HtmlDocument();
doc.LoadHtml(output);
string inner = doc.DocumentNode.SelectSingleNode("//option[@selected='selected']").InnerText;
Run Code Online (Sandbox Code Playgroud)

但我得到的只是空字符串.

任何建议表示赞赏.

问候.

html c# html-agility-pack

3
推荐指数
1
解决办法
1507
查看次数

以变​​量作为值的字典

可能的重复:
具有值“变量”的字典

我有一些高度耦合的代码,我正在尝试解耦。如果我能制作一本这样的字典:

Dictionary<string, var> dict = new Dictionary<string, var>
Run Code Online (Sandbox Code Playgroud)

可以修复很多耦合。另一个线程中的一位发帖人似乎找到了使用变量类的解决方案,但他/她没有发布该类的任何详细信息,我不知道如何做到这一点。

编辑:

基本上,而不是:

string transit = <string value>;
Run Code Online (Sandbox Code Playgroud)

我希望能够写:

string dict["Transit"] = <string value>;
Run Code Online (Sandbox Code Playgroud)

我已经完成的地方:

Dictionary<string, var> dict = new Dictionary<string, var>()
{
    {"Transit", transit}
};
Run Code Online (Sandbox Code Playgroud)

这可能是不可能的,但欢迎任何建议。

问候。

c# variables dictionary

1
推荐指数
1
解决办法
1万
查看次数