在互联网上,版权保护是一个永恒的话题,对于网站来说,防止他人盗用图片是维护自身权益的重要一环,ASP.NET作为一种流行的Web开发框架,可以通过添加水印和防盗链技术来保护图片不被非法使用,以下是如何在ASP.NET中实现图片加水印和防盗链的详细步骤和代码示例。

添加水印
准备水印图片
你需要准备一个水印图片,通常是一个透明背景的PNG图片。
编写C#代码
在ASP.NET中,你可以使用System.Drawing命名空间中的Graphics类来在图片上绘制水印。
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Web;
public static string AddWatermark(string originalImagePath, string watermarkPath, string outputImagePath)
{
using (Image originalImage = Image.FromFile(originalImagePath))
{
using (Image watermark = Image.FromFile(watermarkPath))
{
using (Graphics graphics = Graphics.FromImage(originalImage))
{
// 设置水印位置
float x = (originalImage.Width - watermark.Width) / 2;
float y = (originalImage.Height - watermark.Height) / 2;
// 设置水印透明度
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.SmoothingMode = SmoothingMode.AntiAlias;
graphics.DrawImage(watermark, x, y, watermark.Width, watermark.Height);
}
// 保存添加水印后的图片
originalImage.Save(outputImagePath);
}
}
return outputImagePath;
}实现防盗链
配置Web.config
在ASP.NET项目中,你需要修改Web.config文件,添加以下配置来启用防盗链。

<configuration>
<system.web>
<httpRuntime targetFramework="4.0" />
<customErrors mode="On" defaultRedirect="error.html">
<error statusCode="403" redirect="403.html" />
</customErrors>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<security>
<requestFiltering>
<requestLimits maxUrlLength="8192" />
</requestFiltering>
</security>
</system.webServer>
</configuration>编写C#代码
你需要编写代码来检查请求的来源,并返回相应的响应。
public static void CheckReferer(HttpRequest request, HttpResponse response)
{
string referer = request.UrlReferrer != null ? request.UrlReferrer.Host : "";
string allowedDomains = "yourdomain.com, anotherdomain.com"; // 允许的域名列表
if (!allowedDomains.Contains(referer))
{
response.StatusCode = 403;
response.Write("Access denied.");
}
}FAQs
Q1:如何在图片上添加文字水印?
A1: 可以使用System.Drawing命名空间中的TextRenderer类来在图片上添加文字水印,首先创建一个Graphics对象,然后使用TextRenderer.DrawText方法在指定位置绘制文字。
Q2:如何修改防盗链配置以允许更多域名访问?
A2: 在Web.config文件中,找到<requestFiltering>标签,然后修改<requestLimits>标签中的maxUrlLength属性和<allowedDomains>属性,以允许更多的域名访问,可以增加新的域名到allowedDomains字符串中。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/174780.html
