我想从配置文件中只读取一个连接字符串,并为此添加一个名为"appsettings.json"的文件到我的项目中,并在其上添加以下内容:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-
WebApplica71d622;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
Run Code Online (Sandbox Code Playgroud)
在ASP.NET上我使用了这个:
var temp=ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)
现在我如何在C#中读取"DefaultConnection"并将其存储在.NET Core中的字符串变量中?
在本地机器上,我在mvc4(razor)上创建了示例项目,并创建了名为"x"的目录,并在其中放置了一个文本文件"a.txt".
http://localhost:64471/x/a.txt
Run Code Online (Sandbox Code Playgroud)
在我的网络配置中,我拒绝所有用户通过此配置访问"x"文件夹:
<location path="x">
<system.web>
<authorization>
<deny users="*"/>
</authorization>
</system.web>
Run Code Online (Sandbox Code Playgroud)
现在,如果用户发送此请求:
http://localhost:64471/x/
Run Code Online (Sandbox Code Playgroud)
它工作并将用户返回到web配置中的forms标签中定义的URL.
但是当用户发送此请求时:
http://localhost:64471/x/a.txt
Run Code Online (Sandbox Code Playgroud)
可以在浏览器中读取文本文件(浏览器显示文本文件的内容).
我想知道如何拒绝用户访问"x"文件夹中的所有文件和子文件夹?
我正在使用在线工具测试我的网站,其中一个工具给了我这个警告:
您的服务器似乎允许从User-agent Libwww-perl进行访问.自动查找软件漏洞的僵尸网络脚本有时被标识为User-Agent libwww-perl.通过阻止来自libwww-perl的访问,您可以消除许多更简单的攻击.详细了解阻止Libwww-perl访问并提高网站的安全性.
我的网站是一个ASP.NET MVC 5网站,我只是将这些行添加到我的"robots.txt"文件中.
User-agent: *
Disallow: /
User-Agent: bingbot
Allow: /
Run Code Online (Sandbox Code Playgroud)
但是,该工具仍会报告警告.问题是什么?我阻止所有机器人,只是设置bingbot允许.
我正在测试 Android Studio 4.2 canary 13 和 SQLite。
在这篇文章中,您可以阅读“使用 Android Studio 4.1 Canary 6及更高版本,您可以使用新的数据库检查器检查、查询和修改应用程序的数据库。 ”和“要开始使用,请将您的应用程序部署到运行API 级别 26的设备上或更高版本,然后从菜单栏中选择查看 > 工具窗口 > 数据库检查器。 ”,但是正如您在照片中看到的,此选项在 Android Studio 4.2 上不可用,为什么?
测试应用的 API 为 30。
更新:
在使用这个版本的 Android Studio(4.2) 之前,我的机器(Windows 10 X64)上安装了 Android Studio 4.0.1,我卸载了它。
(使用Android Studio 2021.1.1)
action_settings菜单和配置菜单项。onOptionsItemSelected()以MainActivity.java处理设置菜单,如下所示:@Override
public boolean onOptionsItemSelected(MenuItem item) {
Bundle bundle = new Bundle();
switch (item.getItemId()) {
case R.id.action_settings:
Navigation
.findNavController(this, R.id.nav_host_fragment_content_main)
.navigate(R.id.nav_settings);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
Run Code Online (Sandbox Code Playgroud)
运行项目,抽屉菜单工作正常并按预期打开片段。问题是,当您单击溢出菜单打开设置片段时,它可以工作,但打开主页片段时,抽屉菜单不再工作。
经过一些测试,我发现这是因为依赖版本的原因,将其从2.4.1降级到2.3.5可以解决问题。
我的代码有问题还是因为 API 更改?如何在不降级的情况下处理这个问题?
MainActivity在的方法中onCreate()我添加了以下内容:
mAppBarConfiguration = new AppBarConfiguration.Builder(
R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow, R.id.nav_settings)
.setOpenableLayout(drawer)
.build();
Run Code Online (Sandbox Code Playgroud)
app模块的build.gradle:
plugins {
id 'com.android.application'
}
android {
compileSdk 31
defaultConfig { …Run Code Online (Sandbox Code Playgroud) 我有一个使用MVC5开发的大型网站,我想将其转换为.Net核心.
一切都很好但是当我想添加我对项目的.Net核心版本的引用时,我看到.net核心只接受.net核心类型的引用或一些可以从nuget安装的引用.
我决定将我的DLL引用转换为.Net核心dll类型,因为这会创建一个新的.Net核心类库但是当我点击添加对这个类库的一些引用时,比如Syste.Drawing,我看到引用列表上没有任何内容.
经过一些搜索谷歌我发起了一些像
使用.NET Core操作图像 ....
在遇到这个问题后,我想我可能遇到这样的问题,我无法在.Net核心中处理它,我应该待命,直到微软发布更完整版的.net核心.
现在的问题是.net core是否可以启动真正的项目/产品?
我正在研究我的Web应用程序安全性,想知道我是否使用它:
<machineKey validationKey="AutoGenerate,IsolateApps"
compatibilityMode="Framework45" decryptionKey="AutoGenerate,IsolateApps"
validation="SHA1"/>
Run Code Online (Sandbox Code Playgroud)
在我的web.config中,现在第一个用户向我的站点发送第一个请求,并且在这个时候,validationKey将被创建,之后第二个用户发送第二个请求,现在validationkey将再次创建或者是什么?
对于所有用户,这些验证密钥是否相同?
这个配置和这个之间有什么区别?
<machineKey compatibilityMode="Framework45"
validationKey="37BAD4B702C65CF39B1ED514AC4B3D88990DDF784AA0895659
B528ED95F8CA0A9CD1AF5ED92A2599362684CB8D204AC30D07E6BF0CF65194A5129"
decryptionKey="B450FB3271C49E6BA89A0C5C8D06B61875BCE4916A40474ED"
validation="SHA1" decryption="AES" />
Run Code Online (Sandbox Code Playgroud)
哪一个更好用?
我在Web场上有一个Web应用程序,我使用.NET 4和实体数据模型4.1.
当我开始使用这个Web应用程序时,我使用了visual studio 2010,今天我已经卸载它并安装了新版本(Visual Studio 2012).
由于某些原因,我删除了我的ado.net实体数据模型来重新创建它,但我
注意到visual studio 2012使用的entity framework 5不是4.1.我已经更新了它,但在旧模型中,我可以使用上下文构造函数来更改我的连接字符串但是在这个新模型中没有构造函数,是真的吗?
我已安装,EF 4.1但它不起作用,我已将版本5添加到我的项目中.背景信息:我的Web应用程序位于共享主机上,我无法将其更新为EF 5.
我如何在visual studio 2012中使用实体框架4.1?那可能吗?如果有,怎么样?
我在我的Windows应用程序中使用了SQL Server CE 4.0,并使用Entity Framework创建了它的模型.
它工作正常但我的问题是它没有构造函数来更改连接字符串,默认情况下它从app.config文件中读取连接字符串.
using (var Context = new MyEntitiesModel(//has no constructor))
{
...
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个动态连接字符串和
using (var Context = new MyEntitiesModel())
{
Context.Database.Connection.ConnectionString = entityConnection.ConnectionString;
}
Run Code Online (Sandbox Code Playgroud)
它通过这种方式工作正常,但如果我删除app.config文件中的另一个连接字符串,它给了我这个.
错误=无效的元数据....
因为默认构造函数使用它
我该怎么处理?
当我想在我的收藏中创建一个新的团队项目时,将 Visual Studio 2019 更新到版本 16.2.2 后,它错过了这个菜单项。一切正常,我可以从门户网站创建它,但是没有菜单项,它只是一个管理连接的菜单,有什么问题吗?这是错误还是发生了什么?
它必须像这张照片: