小编Der*_*mes的帖子

为什么ASP.NET Identity接口使用字符串作为主键和外键?

我正在查看新ASP.NET Identity类的接口以及它使用Entity Framework Code First创建的数据库.我正在使用Visual Studio 2013 RC.

乍一看,数据库模式看起来相当正常:

在此输入图像描述

但是所有钥匙都是NVARCHAR(128)

而出于一些疯狂的原因AspNetUserSecrets.Id,PK似乎可以指向AspNetUsers表中的多个记录.这是否意味着多AspNetUsers个人必须共享相同的密码?

当我看到你要强制实现的接口时,这些都是字符串......

public class User : IUser
{
    public string Id { get; set; }
    public string UserName { get; set; }
}

public class UserSecret : IUserSecret
{
    public string UserName { get; set; }
    public string Secret { get; set; }
}

public class UserRole : IUserRole
{
    public string UserId { get; set; }
    public string RoleId { get; set; } …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-identity

55
推荐指数
2
解决办法
8792
查看次数

如何通过编程方式判断Word宏是否是从VB.Net/C#签名的

我有一个以编程方式的VB.Net/C#应用程序:

  1. 创建RTF文档
  2. 在Microsoft Word中打开它
  3. 使用如下代码运行Word模板中存在的Word宏:

码:

Protected mobjWordApp As Word.Application = Nothing
'
' lots more code snipped for clarity
'
With mobjWordApp.Dialogs.Item(Word.WdWordDialog.wdDialogToolsMacro)
    .Name = MacroName
    .Run = True
    .Execute()
End With
Run Code Online (Sandbox Code Playgroud)

多年来,这一切都很愉快.

我现在有了新的要求; 我的应用程序只需要运行SIGNED Word宏.

这在Word用户界面中很容易做到,如下所示:

File > Options > Trust center > Macro Settings
Select "Disable all macros except digitally signed macros"
Run Code Online (Sandbox Code Playgroud)

信托中心

设置此项后,如果运行Word的人显示"宏"对话框,则不会列出任何未签名(或已签名但不可信)的宏.这就像我期望的那样.

但是,打开Word应用程序的VB.Net代码可以绕过这个.当我运行此代码时,它将运行无符号宏:

With mobjWordApp.Dialogs.Item(Word.WdWordDialog.wdDialogToolsMacro)
    .Name = MacroName
    .Run = True
    .Execute()
End With
Run Code Online (Sandbox Code Playgroud)

我需要知道的是:

有没有办法让我的代码在运行之前识别宏是否已签名(和受信任)?

.net vb.net vba ms-word

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

使用 <pre> 标签格式化 HTML 电子邮件中的 QR 码

我正在编写一个在线预订系统,该系统发送二维码作为确认电子邮件/电子机票的一部分。

\n\n

该电子邮件采用 HTML 格式,并且由于许多人关闭了电子邮件客户端中的图像,因此我正在研究使用标签在邮件正文中显示 QR 代码<pre>

\n\n

这样,无论电子邮件客户端设置是否显示图像,都会显示二维码。

\n\n

这是我到目前为止所拥有的:

\n\n
<pre style="font-family: \'Lucida Console\', Monaco, monospace; font-size: 8px; font-weight: 900; padding: 0; letter-spacing: 0; line-height: 8px; ">\n\n\n\n     \xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88  \xe2\x96\x88  \xe2\x96\x88 \xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88     \n     \xe2\x96\x88     \xe2\x96\x88 \xe2\x96\x88  \xe2\x96\x88  \xe2\x96\x88     \xe2\x96\x88     \n     \xe2\x96\x88 \xe2\x96\x88\xe2\x96\x88\xe2\x96\x88 \xe2\x96\x88  \xe2\x96\x88    \xe2\x96\x88 \xe2\x96\x88\xe2\x96\x88\xe2\x96\x88 \xe2\x96\x88     \n     \xe2\x96\x88 \xe2\x96\x88\xe2\x96\x88\xe2\x96\x88 \xe2\x96\x88 \xe2\x96\x88  \xe2\x96\x88  \xe2\x96\x88 \xe2\x96\x88\xe2\x96\x88\xe2\x96\x88 \xe2\x96\x88     \n     \xe2\x96\x88 \xe2\x96\x88\xe2\x96\x88\xe2\x96\x88 \xe2\x96\x88   \xe2\x96\x88\xe2\x96\x88\xe2\x96\x88 \xe2\x96\x88 \xe2\x96\x88\xe2\x96\x88\xe2\x96\x88 \xe2\x96\x88     \n     \xe2\x96\x88     \xe2\x96\x88 \xe2\x96\x88\xe2\x96\x88\xe2\x96\x88 \xe2\x96\x88 \xe2\x96\x88     \xe2\x96\x88     \n     \xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88 \xe2\x96\x88 \xe2\x96\x88 \xe2\x96\x88 \xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88 …
Run Code Online (Sandbox Code Playgroud)

html email qr-code

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

是否有用于减少重复连接表数据的数据库设计模式名称?

我有两个带有联接表的表,以允许多对多关系。

在此处输入图片说明

这是一个非常熟悉的设计模式。它指示每个成员有权访问的分支。

随着成员和分支数量的增加,我最终在联接表中获得了很多在成员之间重复的数据。成员往往具有与其他成员相同的分支机构组访问权限。

因此,我正在通过创建有效不变的MemberProfile表来规范化我的数据。而且,与其为我检查匹配的MemberProfile的每个会员创建MemberBranch记录,不使用它是否已经存在,否则创建一个(如果不存在):

我的想法是,如果我有100万个会员,但只有100个访问配置文件,这将为我节省很多数据库空间。

在此处输入图片说明

我很高兴这一切都能奏效,而且值得付出开发工作。

我的问题是“这是标准的数据库设计模式吗?如果是的话,它叫什么名字?”

编辑:有人指出,这是在压缩数据而不是对其进行规范化。这是设计背后的意图。

sql database-design design-patterns

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

如何搜索SQL Server中使用字段或表的所有位置

我需要知道我的SQL Server数据库中使用表/字段的所有位置.

我毕竟是对这个表/字段做任何事情的存储过程,触发器,函数等.

"查找"选项似乎没有这样做,我无法相信这样做的唯一方法是编写查询...

sql-server

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

IFormattable参数的函数不接受String

我有一个函数,我处理了一个字符串输入.

    public string Foo(string text)
    {
        // do stuff with text and
        // return processed string
    }
Run Code Online (Sandbox Code Playgroud)

我从很多地方调用了这个,我将guid转换为这样的字符串:

string returnValue = Foo(bar.ToString());
Run Code Online (Sandbox Code Playgroud)

我真正想要的是接受任何可以转换为字符串的对象类型作为输入.所以我尝试修改函数如下:

    public string Foo(IFormattable text)
    {
        var textAsString = text.ToString();
        // do stuff with textAsString 
        // and return processed string
    }
Run Code Online (Sandbox Code Playgroud)

这意味着我的所有电话都更简单:

string returnValue = Foo(bar);
Run Code Online (Sandbox Code Playgroud)

它适用于具有.ToString方法的所有对象类型; 除了字符串:)

如果我尝试将字符串传递给函数,我会得到以下编译错误:

Argument type 'string' is not assignable to parameter type 'System.IFormattable'  
Run Code Online (Sandbox Code Playgroud)

这似乎很奇怪,因为String有一个ToString()方法.

为什么这不起作用?

.net c# iformattable

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